-Micrisioft Visual Studio 2003/2005 ( ссылку дать не могу т.к. много весит, ищите в сетевых ресурсах )
-Tortoise SVN, она же черепаха Процесс:
Создаем папку, где угодно и называем как угодно.
Далее тыкаем на неё правой кнопкой мышки и выбираем "SVN Chekout..."
Появляется окошко, в строку URL of repository ссылку
https:https://mangos.svn.sourceforge.net/svnroot/mangos/trunk/ ССЫЛКА ОБНОВЛЕНА, ТЕПЕРЬ ПРАВИЛЬНАЯ
Жмем Accept Pernament чёт там
Ждем когда всё закачается.
Теперь когда всё скачалось залазим в папку на которую вы тыкали, в неё ещё всё закалось, там видем папку win.
Там находятся файлы mangosdVC71 и mangosdVC80, если у вас стоит Microsoft Visual studio 2003 то запускаем mangosdVC71, если у вас Microsoft VS 2005 запускаем mangosdVC80.
Открывается окно компилятора.
Ждем пока всё отлагается
Смотрите вверх, видите там надпись Build?, жмите на неё, появляется меню, выбираем Batch Build.
Появляется окно, в нем строки и напротив галки. Ставим галки напротив каждой строки где есть слово Release и тыкаем на Build.
ЖДЕМ
P.S. внизу вы увидите надпись типа
------ Build started: Project: realmd, Configuration: Debug Win32 ------
это лог компиляции, когда увидите надпись наподобие такой
========== Build: 9 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
значит серв скомпилировался.
Теперь лезим в папку, которую нажимали SVN Chekout...
В ней залазим в папку bin, потом Debug.
В Debug забираем файлы : libeay32.dll, libmySQL.dll, mangosd.exe, realmd.exe иMaNGOSScript.dll.
Достаем конфигурационные файлы
Лезем в папку src, в ней лезем сначала в Mangosd, там есть файл mangosd.conf.in, удаляем на конце .in, получаем mangosd.conf, потом лезем в папку realmd там файл realmd.conf.in, так же удаляем в конце .in
Готово
Добавлено (10.09.2007, 07:32)
---------------------------------------------
Тут нужна только внимательность и куча времени. К примеру берём кусок патча на страх. Так как всем известно что от новых изменений он стал несовместим то объясняю:
Код:
Index: game/Level3.cpp
===================================================================
--- game/Level3.cpp (revision 2808)
+++ game/Level3.cpp (working copy)
@@ -1524,7 +1524,7 @@
if( target->isAlive() )
{
uint32 health = target->GetHealth();
- m_session->GetPlayer()->DealDamage(target, target->GetHealth(), 0, false);
+ m_session->GetPlayer()->DealDamage(target, target->GetHealth(), DIRECT_DAMAGE, 0, false);
}
return true;
Заходим в нужный скрипт, обычно в папке Src/games (в основном) с помощью Visual Studio. Жмём CTRL+F и вводим туда содержимое строки с минусом (к примеру :
Код:
m_session->GetPlayer()->DealDamage(target, target->GetHealth(), 0, false);
Нивкоем случае не пиши в поиск сам -!
Найденная строка будет выделена и нужно только заменить её
Код:
m_session->GetPlayer()->DealDamage(target, target->GetHealth(), DIRECT_DAMAGE, 0, false);
В общем суть должна быть понятна. ПО аналогии делается всё остальное. Хотя я бы не прочь узнать секреты быстрого редактирования пачтей от народных умельцев.....
иногда бывают случаи если патч очень устарел то заменяем по логике, к примеру
В том же патче на месте
Код:
m_session->GetPlayer()->DealDamage(target, target->GetHealth(), 0, false);
расположено
Код:
m_session->GetPlayer()->DealDamage(target, target->GetHp(), 30, false);
или тому подобное то поиск ведём по строкам перед или после нужного нам участка и уже по ним смотрим куда нужно вставлять этот код.
Добавлено (10.09.2007, 07:33)
---------------------------------------------
Берем код патча, выделяем жмем правой кнопкой->копировать. Теперь создаем в любом удобном месте файл с расширением ".patch". После открываем ново-созданный файл любым текстовым редактором и вставляем туд текст патча. Сохраняем и выходим из редактора. Кликаем на файле правой кнопкой мыши и выбираем раздел "TortoiseSVN". Выпадает менюха в которой выбираем пункт "apply patch...". Появляется окошко в котором нужно указать путь к папке с сорсами. Потом откроется основное окно TortoiseSVN и маленькое окошко с выбором файла для патча. Выбираем каждый из доступных файлов и поочердно кликаем на каждом сначала по два раза левой клавишей мыши, а потом на кнопку "save..." вверху основного меню. После этого прогу можно закрывать. Патч успешно применен.
Добавлено (10.09.2007, 08:02)
---------------------------------------------
авто регистрация аккаунтов,
т.е если имя аккаунта и пас одинаковые и нет такого аккаунта то он создаться
также в конфиге (realmd.conf) можно включать и отключать всё это дело
Код:
# Auto Registration setting
# Default: 0 (not to use)
# 1 (Use)
UseAutoReg = 0
параметр в конфиг
Код:
#Amount account registered on IP (Used only Auto Registration)
# Default: 0 (not to use)
# 1 or more
AmountIP = 0
Добавлено (10.09.2007, 08:02)
---------------------------------------------
Фиксит талант Clearcasting и исправляет Totemic focus теперь эффект распространяется и на Magma totem, Healing spring totem, Mana wave totem а также фиксит 1 ранг этого таланта.
SQL апдейт:
Код:
-- Totemic Focus 1-5 rangs
-- now for all totems
DELETE FROM `spell_affect` WHERE `entry` IN (16173,16222,16223,16224,16225);
INSERT INTO `spell_affect` VALUES
(16173,0,0,0,0,0,0,0x20081018,0),
(16222,0,0,0,0,0,0,0x20081018,0),
(16223,0,0,0,0,0,0,0x20081018,0),
(16224,0,0,0,0,0,0,0x20081018,0),
(16225,0,0,0,0,0,0,0x20081018,0);
-- Shaman Clearcasting
DELETE FROM `spell_affect` WHERE `entry` IN (16246);
INSERT INTO `spell_affect` VALUES
(16246,0,0,0,0,0,0,0x90100003,0);
Добавлено (10.09.2007, 08:02)
---------------------------------------------
апдейт на спеллы шаманских реликов
Код:
-- Item Stormfury Totem, spell Reduced Stormstrike Cost
DELETE FROM `spell_affect` WHERE `entry` IN (37762);
INSERT INTO `spell_affect` VALUES
(37762,0,0,0,0,0,0,0x1000000000,0);
-- Totem of Lightning, spell Reduced Lightning Cost
DELETE FROM `spell_affect` WHERE `entry` IN (33696);
INSERT INTO `spell_affect` VALUES
(33696,0,0,0,0,0,0,0x0000000001,0);
-- Totem of Rebirth, spell Reduced Reincarnation Cooldown
DELETE FROM `spell_affect` WHERE `entry` IN (27797);
INSERT INTO `spell_affect` VALUES
(27797,0,0,0,0,0,0,0x000000200,0);
-- Item Totem of the Maelstrom, spell Reduced Healing Wave Cost
DELETE FROM `spell_affect` WHERE `entry` IN (37738);
INSERT INTO `spell_affect` VALUES
(37738,0,0,0,0,0,0,0x00000040,0);
-- Item Totem of the Pulsing Earth, spell Reduced Lightning Bolt Cost
DELETE FROM `spell_affect` WHERE `entry` IN (37740);
INSERT INTO `spell_affect` VALUES
(37740,0,0,0,0,0,0,0x000000001,0);
Добавлено (10.09.2007, 08:03)
---------------------------------------------
SpellFamilyMask спеллов шамана
-- -----------------------------------------------------------------------
-- 0x000000000001 00000000000000000000000000000000000000000001 Lightning Bolt
-- 0x000000000002 00000000000000000000000000000000000000000010 Chain Lightning
-- 0x000000000004 00000000000000000000000000000000000000000100 ??
-- 0x000000000008 00000000000000000000000000000000000000001000 Stoneclaw Totem
-- 0x000000000010 00000000000000000000000000000000000000010000 Searing Totem
-- 0x000000000020 00000000000000000000000000000000000000100000 Fire Nova (totem effect)
-- 0x000000000040 00000000000000000000000000000000000001000000 Healing wave
-- 0x000000000080 00000000000000000000000000000000000010000000 Lesser healing wave
-- 0x000000000100 00000000000000000000000000000000000100000000 Chain heal
-- 0x000000000200 00000000000000000000000000000000001000000000 Reincarnation
-- 0x000000000400 00000000000000000000000000000000010000000000 Lightning Shield
-- 0x000000000800 00000000000000000000000000000000100000000000 Ghost Wolf
-- 0x000000001000 00000000000000000000000000000001000000000000 Magma Totem
-- 0x000000002000 00000000000000000000000000000010000000000000 Healing Stream (totem effect)
-- 0x000000004000 00000000000000000000000000000100000000000000 Mana Spring (totem effect)
-- 0x000000008000 00000000000000000000000000001000000000000000 Stoneskin, Windwall (totem effect)
-- 0x000000010000 00000000000000000000000000010000000000000000 Strength of Earth (totem effect)
-- 0x000000020000 00000000000000000000000000100000000000000000 Grace of Air (totem effect)
-- 0x000000040000 00000000000000000000000001000000000000000000 ??
-- 0x000000080000 00000000000000000000000010000000000000000000 Mana/Healing Stream Totem
-- 0x000000100000 00000000000000000000000100000000000000000000 Earch shock
-- 0x000000200000 00000000000000000000001000000000000000000000 Flametoniqe weapon prock (enchant effect)
-- 0x000000400000 00000000000000000000010000000000000000000000 Rockbitter weapon
-- 0x000000800000 00000000000000000000100000000000000000000000 Windfury Attack (enchant effect)??
-- 0x000001000000 00000000000000000001000000000000000000000000 Frostbrand Attack (enchant effect)
-- 0x000002000000 00000000000000000010000000000000000000000000 Flametongue Attack (possibly Flametongue totem enchant)
-- 0x000004000000 00000000000000000100000000000000000000000000 Totems effect... (totem effect)
-- 0x000008000000 00000000000000001000000000000000000000000000 ??
-- 0x000010000000 00000000000000010000000000000000000000000000 Flame shock
-- 0x000020000000 00000000000000100000000000000000000000000000 Totems.....
-- 0x000040000000 00000000000001000000000000000000000000000000 Magma totem attack, Searing Totem attack (totem effect)
-- 0x000080000000 00000000000010000000000000000000000000000000 Frost shock
-- 0x000100000000 00000000000100000000000000000000000000000000 Earthbind (totem magic)
-- 0x000200000000 00000000001000000000000000000000000000000000 Windfury Totem, Windfury Attack(Windfury totem enchant)
-- 0x000400000000 00000000010000000000000000000000000000000000 Flametongue Totem Proc (Flametongue totem enchant)
-- 0x000800000000 00000000100000000000000000000000000000000000 Cure poison, Cure Disease
-- 0x001000000000 00000001000000000000000000000000000000000000 Stormstrike
-- 0x002000000000 00000010000000000000000000000000000000000000 Water Shield
-- 0x004000000000 00000100000000000000000000000000000000000000 Heroism, Bloodlust
-- 0x008000000000 00001000000000000000000000000000000000000000 Nature's Swiftness
-- 0x010000000000 00010000000000000000000000000000000000000000 Wrath of Air Totem (totem effect)
-- 0x020000000000 00100000000000000000000000000000000000000000 Flurry
-- 0x040000000000 01000000000000000000000000000000000000000000 Earth Shield
-- 0x080000000000 10000000000000000000000000000000000000000000 Water Breathing, Water Walking, Purge, enhabting weapon
Добавлено (10.09.2007, 08:10)
---------------------------------------------
Index: src/game/GridNotifiers.h
===================================================================
--- src/game/GridNotifiers.h (revision 4338)
+++ src/game/GridNotifiers.h (working copy)
@@ -436,6 +436,40 @@
bool operator()(Unit* u) { return u->GetVisibility()==VISIBILITY_GROUP_STEALTH; }
};
+ class NearestCreatureCheck
+ {
+ public:
+ NearestCreatureCheck(Unit* unit,uint32 entry) : i_unit(unit), i_entry(entry) {}
+ bool operator()(Creature* u) const
+ {
+ if(u->GetEntry() == i_entry)
+ return true;
+
+ return false;
+ }
+ private:
+ Unit* i_unit;
+ uint32 i_entry;
+
+ };
+
+ class NearestObjectCheck
+ {
+ public:
+ NearestObjectCheck(Unit* unit,uint32 entry) : i_unit(unit), i_entry(entry) {}
+ bool operator()(GameObject* go) const
+ {
+ if(go->GetEntry() == i_entry)
+ return true;
+
+ return false;
+ }
+ private:
+ Unit* i_unit;
+ uint32 i_entry;
+
+ };
+
class CannibalizeUnitCheck
{
public:
Index: src/game/Player.cpp
===================================================================
--- src/game/Player.cpp (revision 4338)
+++ src/game/Player.cpp (working copy)
@@ -11318,12 +11324,48 @@
{
// checked at quest_template loading
reqTarget = - qInfo->ReqCreatureOrGOId[j];
+ if(!entry && !guid)
+ {
+ //refind nearest gameobject.
+ CellPair p(MaNGOS::ComputeCellPair(GetPositionX(), GetPositionY()));
+ Cell cell = RedZone::GetZone(p);
+ cell.data.Part.reserved = ALL_DISTRICT;
+
+ GameObject* TargetObject = NULL;
+ MaNGOS::NearestObjectCheck go_check(this,reqTarget);
+ MaNGOS::GameObjectSearcher<MaNGOS::NearestObjectCheck> checker(TargetObject,go_check);
+
+ TypeContainerVisitor<MaNGOS::GameObjectSearcher<MaNGOS::NearestObjectCheck>, GridTypeMapContainer > object_checker(checker);
+ CellLock<GridReadGuard> cell_lock(cell, p);
+ cell_lock->Visit(cell_lock, object_checker, *MapManager::Instance().GetMap(GetMapId(), this));
+
+ if (TargetObject)
+ entry = TargetObject->GetEntry();
+ }
}
// creature activate objectives
else if(qInfo->ReqCreatureOrGOId[j] > 0)
{
// checked at quest_template loading
reqTarget = qInfo->ReqCreatureOrGOId[j];
+ if(!entry && !guid)
+ {
+ //refind nearest creature.
+ CellPair p(MaNGOS::ComputeCellPair(GetPositionX(), GetPositionY()));
+ Cell cell = RedZone::GetZone(p);
+ cell.data.Part.reserved = ALL_DISTRICT;
+
+ Creature* TargetCreature = NULL;
+
+ MaNGOS::NearestCreatureCheck u_check(this,reqTarget);
+ MaNGOS::CreatureSearcher<MaNGOS::NearestCreatureCheck> checker(TargetCreature, u_check);
+ TypeContainerVisitor<MaNGOS::CreatureSearcher<MaNGOS::NearestCreatureCheck>, GridTypeMapContainer > object_checker(checker);
+ CellLock<GridReadGuard> cell_lock(cell, p);
+ cell_lock->Visit(cell_lock, object_checker, *MapManager::Instance().GetMap(GetMapId(), this));
+
+ if (TargetCreature)
+ entry = TargetCreature->GetEntry();
+ }
}
// other not creature/GO related objectives
else
Index: src/game/Spell.cpp
===================================================================
--- src/game/Spell.cpp (revision 4338)
+++ src/game/Spell.cpp (working copy)
@@ -1705,6 +1728,9 @@
// ignore autorepeat/melee casts for speed (not exist quest for spells (hm... )
if( m_caster->GetTypeId() == TYPEID_PLAYER && !IsAutoRepeat() && !IsMeleeSpell() && !IsChannelActive() )
{
+ if( m_targets.getUnitTargetGUID() && GUID_HIPART(m_targets.getUnitTargetGUID())==HIGHGUID_PLAYER )
+ ((Player*)m_caster)->CastedCreatureOrGO(0,0,m_spellInfo->Id);
+
if( m_targets.getUnitTargetGUID() && GUID_HIPART(m_targets.getUnitTargetGUID())==HIGHGUID_UNIT )
{
// Some Script Spell Destroy the target or something and the target is always the player
Добавлено (10.09.2007, 08:10)
---------------------------------------------
Всем известны квесты, в которых нужно скастовать некий спелл на некий NPC/GO
Текущая реализация хорошо, однако не всегда годится. Недавно столкнулся с проблемным квестом Shadoweave Tailoring. В нём нудно, во-первых, быть вблизи ГО, а во-вторых, спел кастуется на невидимого NPC, стоящего внутри этого ГО. Вот и получается, что в цели квеста не попадает ни ГО, ни кричер. В цели спела попадает сам кастер - игрок. Вот для таких случаев (ещё помню квест на воскрешение у паладинов БлудЭльфов - аналогичная проблема) и предназначен данный патч. Суть состоит в том, чтобы дополнить уже имеющийся алгоритм обработкой таких вот исключительных ситуаций, а именно - искать ближайший ГО/NPC вблизи кастера и сравнивать его entry с тем, что требуется по квесту.
Добавлено (10.09.2007, 08:15)
---------------------------------------------
Patch (под Win32 можно взять с http://gnuwin32.sourceforge.net/packages/patch.htm ).
Сэкономите потом кучу времени. Потому что с помощью patch часто удается ставить патчи даже на отличающиеся файлы, а TortoiseSVN в этом случае тупо требует адаптации патча к каждой новой версии - работу ради работы.
Строка для применения такова: patch -l -p0 -i <имя_файла_патча>. При этом файл патча должен лежать в каталоге с исходниками.
Перед применением под linux не забудьте сделать dos2unix -i <имя_файла_патча> -o, иначе возможны проблемы. Под linux на ошибки применения к game.vcproj (2 файла) не обращайте внимания - они там не нужны.
Добавлено (11.09.2007, 08:09)
---------------------------------------------
GM shop new http://filebeam.com/da27a8be6a5d080cc3986992a2109de5
GM shop http://filebeam.com/7748508b20477aa647018b3922df2fa3
Добавлено (11.09.2007, 08:09)
---------------------------------------------
Устанавливаем Server на Динамическим IP.
Это для тех, у кого IP меняется каждый раз при перезагрузки Компьютера.
1.Сначала Регистрируемся http://www.no-ip.com/newUser.php/
2. Потом ждём пока прейдёт письмо на email, которое надо подтвердить (в письме будет линк возле надписи "To activate your account please click the following URL").
3.После того как подтвердили, идём http://www.no-ip.com/login/ сверху заполняем поля "Email" и "Password" (Те которые вы писали в регистрации), потом нажимаем "Login" если всё было успешно вы попадёте в ваш "Control Panel"
4. После того, как вы попали "Control Panel", слева есть ссылка по названию "Add", нажимае на неё.
5. Теперь заполняем поля:
Hostname : название которые вы хотите - допустим "MuOnline".
Host Type : это будет после названия допустим MuOnline.no-ip.info
Остальное заполнять не надо, просто нажимаем "Creat Host".
6.Теперь качаем програму http://filebeam.com/43d3cc91d2078ef1b99c913cb9cfe921
7. Устанавливаем её, потом надо будет в программе опять написать ваш Email" и "Password" (Те которые вы писали в регистрации).
8.Там мы видим "MuOnline.no-ip.info", и просто нажимаем на маленький "Кубик", рядом с этим "Хостом".
Теперь давайте всем не ваш IP, а вот этот который мы делали (MuOnline.no-ip.info).
Добавлено (11.09.2007, 08:11)
---------------------------------------------
Для таво чтобы поставить порталы вам нужно прописать .addgo <номер портала>
Id порталов:
Ogrimmar - 183323;
Stormwind - 183325;
Thunder Bluff - 183326;
Under City - 183327;
Darnasus - 183317;
Ironforge - 183322;
Exodar - 183321;
Silvermoon - 183324;
Shattrath - 183384;
Netherstorm - 184605;
Socrethar`s seat - 184604.
Телепорты:
==============Instances===================
.go -41 -22 -14 540 - Hellfire Military
.go -3 11 -45 542 - Hellfire Demon
.go -11109.36 -2002.97 49.9 532 - Karazhan
.go -11061.4326 -1957.6160 273.2524 532 - Top of Karazhan
.go -1752.68 -288.79 73.05 560 - Old Hillsbrad
.go 331 -331 22 546 - coilfang
.go 1116.7 -323.5 68.5 269 - Black Morass
.go 4156.1919 2827.0188 51.1325 559 - Nagrand PVP Arena
.go 6400 356 0 562 - Blades Edge Arena
.go 3005.4951 -3433.6279 304.1954 533 - Naxxarmas
.go 2000 100 500 560 - Old Hyjal
.go 943 750 310 564 - Black Temple
.go 0 0 0 550 - Tempest Keep
.go -248 956 85 530 - Hellfire Penisula (Dark portal entrance)
.go -224 5404 23 530 - Zangarmarsh
.go 1587 8607 -33 530 - Zangarmarsh (Ango'rosh stronghold)
.go -526 8440 47 530 - Nagrand
.go -1177 5336 30 530 - Terokkar Forest entrance (Zangarmarsh)
.go -2848 3190 8 530 - Shadowmoon Valley
.go -41 -22 -14 540 - Hellfire Military
.go -3 11 -45 542 - Hellfire Demon
.go -4020.4766 -13783.3340 73.900 530 - Draenei Starting Area
.go 6862.0913 -7576.3403 85.6041 530 - Amani Pass
.go -11061.4326 -1957.6160 273.2524 532 Top of Karazahn
==============OUTLANDS===================
.go 2342 2642 27 530- Netherstorm
.go 1114 7091 123 530- Blades Edge Mountains
.go 8481 -5565 1 530- North Sea - Eversong Woods
.go 9851 -7500 -4 530- Silvermoon City
.go -703 2724 94 530- Honor Hold
.go 7557 -6889 96 530- Tranquillien
.go -4020.4766 -13783.3340 73.9001 530- Azuremyst Isle
.go 7880 -6193 21 - Ghostlands
.go -248 956 85 530- Hellfire Penisula
.go 1587 8607 -33 530- Zangarmarsh
.go -526 8440 47 530- Nagrand
.go -2721.6763 -12208.9297 9.0882 530- Bloodmyst Isle
.go -1177 5336 30 530- Terokkar Forest entrance
.go -2848 3190 8 530- Shadowmoon Valley
.go -4020.4766 -13783.3340 73.900 530- Crash Site
.go 6862.0913 -7576.3403 85.6041 530- Amani Pass
.go 3606.8525 5260.4902 3.1724 530- Blades Edge Mountain
.go -3579 -23 275 530- Top of the Black Temple
.go -236.9099 963.2751 282.0297 530- On Top of the Dark Portal
.go -305.7143 3056.9558 -2.6005 530- Hellfire Citadel Enterance
.go 2280.6804 2520.7498 115.2777 530- Netherstorm
.go 573 8655 19.3 530- Twilight Portal
.go 10459.0205 -6366.3696 39.7917 530- Sunstrider Isle
.go -247.0472 938.1437 84.3426 530- Stairway of Destiny
==============GM Stuff====================
.go 16222.1 16252.1 12.6 1 - Gm Isle (остров ГМа)
.go 16391.8 16341.2 69.5 451 - Programmer Isle
.go 16303.5 -16173.5 40.5 451- Designers Isle
.go 359 45 0 269 - Inside the Dalaran Bubble