https://wowsoft.ru/shapkawowsoft.jpg
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » TrinityCore » Ядра TrinityCore » Много патчей для офф ядра тринити
Много патчей для офф ядра тринити
NoobpriestДата: Понедельник, 08.11.2010, 18:59 | Сообщение # 1
±Каратель Флудеров±
Группа: Модераторы
Сообщений: 222
Статус: :-)
# AllInOne
# BRD
# Bots
# GuildHouse
# ItemSummonNPC
# PVPRank
# README.txt
# TeleNPC2
# TriniChat2
# TrinityJail
# WintergraspPVPEvent

ссылка на патчи Тык

Для того что бы поставить патч вам понадабиться (руки )
Создаем Текстовый документ.txt , Патом заходим на ссылку с патчами выбираем какой вам нада патч копируем код в Текстовый документ.txt , патом меняем названия Текстовый документ.txtна name.patch [notice]Буду выкладывать тут всякие патчи в ядро[/notice]
Восстановление хп\маны и сброс кд при начале дуэля

Quote
diff -r 8f824d68fad6 src/game/DuelHandler.cpp
--- a/src/game/DuelHandler.cpp Fri Dec 04 04:13:28 2009 +0200
+++ b/src/game/DuelHandler.cpp Sun Dec 06 20:54:56 2009 +0300
@@ -51,6 +51,15 @@
pl->duel->startTimer = now;
plTarget->duel->startTimer = now;

+ // reset cooldowns and HP/Mana
+ pl->SetHealth(pl->GetMaxHealth());
+ plTarget->SetHealth(plTarget->GetMaxHealth());
+
+ if (pl->getPowerType() == POWER_MANA) pl->SetPower(POWER_MANA, pl->GetMaxPower(POWER_MANA));
+ if (plTarget->getPowerType() == POWER_MANA) plTarget->SetPower(POWER_MANA, plTarget->GetMaxPower(POWER_MANA));
+ //only for cooldowns which < 15 min
+ if (!pl->GetMap()->IsDungeon()) { pl->RemoveArenaSpellCooldowns(); plTarget->RemoveArenaSpellCooldowns(); }
+
pl->SendDuelCountdown(3000);
plTarget->SendDuelCountdown(3000);
}

Патч на маунты на прокат

Quote
1.
diff --git a/src/game/ScriptLoader.cpp b/src/game/ScriptLoader.cpp
2.
--- a/src/game/ScriptLoader.cpp
3.
+++ b/src/game/ScriptLoader.cpp
4.
@@ -22,6 +22,7 @@
5.

6.
#ifdef DO_SCRIPTS
7.
//custom
8.
+void AddSC_npc_mount();
9.

10.
//examples
11.
void AddSC_example_creature();
12.
@@ -518,6 +519,7 @@
13.
#ifdef DO_SCRIPTS
14.

15.
//custom
16.
+ AddSC_npc_mount();
17.

18.
//examples
19.
AddSC_example_creature();
20.
diff --git a/src/scripts/CMakeLists.txt b/src/scripts/CMakeLists.txt
21.
--- a/src/scripts/CMakeLists.txt
22.
+++ b/src/scripts/CMakeLists.txt
23.
@@ -17,6 +17,7 @@
24.
../game/ScriptedSimpleAI.cpp
25.
../game/ScriptedSimpleAI.h
26.
custom/on_events.cpp
27.
+ custom/npc_mount.cpp
28.
eastern_kingdoms/alterac_valley/alterac_valley.cpp
29.
eastern_kingdoms/alterac_valley/boss_balinda.cpp
30.
eastern_kingdoms/alterac_valley/boss_drekthar.cpp
31.
diff --git a/win/VC90/game.vcproj b/win/VC90/game.vcproj
32.
--- a/win/VC90/game.vcproj
33.
+++ b/win/VC90/game.vcproj
34.
@@ -1685,6 +1685,10 @@
35.
RelativePath="..\..\src\scripts\custom\on_events.cpp"
36.
>
3 7.
< /File>
38.
+ <File
39.
+ RelativePath="..\..\sr c\sc ript s\cu stom \npc _mou nt.c pp"
4 0.
+ >
41.
+ </File>
42.
</Filter>
43.
<Filter
44.
Name="World"
45.
d iff --git a/src/scripts/custom/npc_mount.cpp b/src/scripts/custom/npc_mount.cpp
46.
new file mode 100644
47.
--- /dev/null
48.
+++ b/src/scripts/custom/npc_mount.cpp
49.
@@ -0,0 +1,74 @@
50.
+/* WORLD
51.
+DELETE FROM `creature_template` WHERE `entry` = '470101';
52.
+
53.
+REPLACE INTO `creature_template` (`entry`, `difficulty_entry_1`, `KillCredit1`, `KillCredit2`, `modelid1`, `modelid2`, `modelid3`, `modelid4`, `name`, `subname`, `IconName`, `minlevel`, `maxlevel`, `armor_mod`, `faction_A`, `faction_H`, `npcflag`, `rank`, `mindmg`, `maxdmg`, `dmgschool`, `attackpower`, `dmg_multiplier`, `baseattacktime`, `rangeattacktime`, `unit_class`, `unit_flags`, `dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `trainer_class`, `trainer_race`, `minrangedmg`, `maxrangedmg`, `rangedattackpower`, `type`, `type_flags`, `lootid`, `pickpocketloot`, `skinloot`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `spell1`, `spell2`, `spell3`, `spell4`, `PetSpellDataId`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `health_mod`, `mana_mod`, `RacialLeader`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `movementId`, `RegenHealth`, `equipment_id`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`) VALUES
54.
+(470101, 0, 0, 0, 15609, 0, 15609, 0, 'Mounts', '', NULL, 82, 82, 1, 35, 35, 1, 1, 1000, 1500, 0, 1000, 1, 1500, 1500, 1, 2, 0, 0, 0, 0, 0, 0, 30, 45, 100, 7, 8, 0, 0, 0, 100, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, 1500, 1700, '', 0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 'npc_mount');
55.
+
56.
+DELETE FROM `locales_creature` WHERE `entry` = '470101';
57.
+
58.
+REPLACE INTO `locales_creature` (`entry`, `name_loc8`, `subname_loc8`) VALUES
59.
+(470101, 'Прокат маунтов', '');
60.
+*/
61.
+#include "ScriptedPch.h"
62.
+
63.
+#define MSG_GOSSIP_TEXT_1 "Я бы хотел взять на прокат быстрое средство передвижения за 10 медных монет"
64.
+#define MSG_GOSSIP_TEXT_2 "Я бы хотел взять на прокат очень быстрое средство передвижения за 1 серебряную"
65.
+#define MSG_NOT_MONEY "У вас не достаточно денег..."
66.
+#define MSG_MOUTED "Вы уже на средстве передвижения."
67.
+#define COST_MONEY_1 10
68.
+#define COST_MONEY_2 100
69.
+#define MOUNT_SPELL_ID_1 43899
70.
+#define MOUNT_SPELL_ID_2 43900
71.
+
72.
+bool GossipHello_npc_mount(Player *player, Creature *_creature)
73.
+{
74.
+ player->ADD_GOSSIP_ITEM(0, MSG_GOSSIP_TEXT_1, GOSSIP_SENDER_MAIN, 1001);
75.
+ player->ADD_GOSSIP_ITEM(0, MSG_GOSSIP_TEXT_2, GOSSIP_SENDER_MAIN, 1002);
76.
+ player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID());
77.
+ return true;
78.
+}
79.
+
80.
+bool GossipSelect_npc_mount(Player *player, Creature *_creature, uint32 sender, uint32 action )
81.
+{
82.
+ if (sender != GOSSIP_SENDER_MAIN)
83.
+ return false;
84.
+
85.
+ if (player->IsMounted()){
86.
+ _creature->MonsterWhisper(MSG_MOUTED, player->GetGUID());
87.
+ return false;
88.
+ }
89.
+
90.
+ switch (action)
91.
+ {
92.
+ case 1001:
93.
+ if (player->GetMoney() < COST_MONEY_1)
94.
+ {
95.
+ _creature->Mons terW hisp er(M SG_N OT_M ONEY , player->GetGUID());
96.
+ }else{
97.
+ player->AddAura(MOUNT_S PELL _ID_ 1, p la yer) ;
98.
+ player->ModifyMoney(-COST_MONEY_1);
99.
+ }
100.
+ break;
101.
+ case 1002:
102.
+ if (player->GetMoney() < COST_MONEY_2)
103.
+ {
104.
+ _creature->Mons terW hisp er(M SG_N OT_M ONEY , player->GetGUID());
105.
+ }else{
106.
+ player->AddAura(MOUNT_S PELL _ID_ 2, p la yer) ;
107.
+ player->ModifyMoney(-COST_MONEY_2);
108.
+ }
109.
+ break;
110.
+ }
111.
+ return true;
112.
+}
113.
+
114.
+
115.
+voi d AddSC_npc_mount()
116.
+{
117.
+ Script *newscript;
118.
+ newscript = new Script;
119.
+ newscript->Name = "npc_mount";
120.
+ newscript->pGossipHello = &GossipHello_npc_mount;
121.
+ newscript->pGossipSelect = &GossipSelect_npc_mount;
122.
+ newscript->RegisterSelf();
123.
+}

Патч в ядро Wintergrasp (ОЛО)
Очередной релиз патча ОЛО+Антиполет (ОЛО+Даларан)

Че нового?
1. Танки уничтожаются при окончании битвы
2. Счетчик танков работает!
3. Анонс на весь мир за 30 и 10 минут до битвы
4. Антиполетная часть с ОЛО работает во время битвы. Когда битвы нету летать над ОЛО можно, но если спешиться в зоне ОЛО на летучего маунта не сесть.
(без патча на ОЛО там также сесть нельзя, поэтому и не искал причину).
5. Добавлено пару SQL файлов, забытых давно
6. При окончании битвы проигравшую сторону телепортирует в Даларан.
7. Система звуковых сообщений во время старта битвы, и во время атаки разных сооружений.
дабы анонс работал накатите в базу мира

Quote

INSERT INTO `trinity_string` VALUES ('780', 'Before the Battle of Wintergrasp left 30 minutes!', '', '', '', '', '', '', '', 'До битвы на Озере Ледяных Оков осталось 30 минут!');
INSERT INTO `trinity_string` VALUES ('781', 'Before the Battle of Wintergrasp left 10 minutes!', '', '', '', '', '', '', '', 'До битвы на Озере Ледяных Оков осталось 10 минут!');

Если не ресают спириты во время боя как на БГ накатите на базу мира
[/code]UPDATE creature_template SET npcflag=npcflag|32768 WHERE entry IN (31841,31842);

Скачать New olo

Вот 2 патчика, закрывающие лазейки в коде для одной из чит-прог, подменяющие значения в клиенте.
Патч на глифы из мангуса.

Quote
=== (+8,-1) src/game/SpellHandler.cpp ===
@@ -51,6 +51,13 @@

recvPacket >> bagIndex >> slot >> cast_count >> spellid >> item_guid >> glyphIndex >> unk_flags;

+ // reject fake data
+ if (glyphIndex >= MAX_GLYPH_SLOT_INDEX)
+ {
+ pUser->SendEquipError(EQUIP_ERR_ITEM_NOT_FOUND, NULL, NULL );
+ return;
+ }
+
Item *pItem = pUser->GetUseableItemByPos(bagIndex, slot);
if(!pItem)
{

Второй патчик - не шло кд на тригерные спелы. Энчантили вещи, чтобы на одной вещи было 2 активных спела - на первый спелл шел кд, на второй не было(сколько в макрос сунешь использование, столько и будет кастов). Пока не тестировалось

Quote
=== (+3,-3) src/game/Spell.cpp ===
@@ -3211,8 +3211,8 @@
return;
}

- // have infinity cooldown but set at aura apply // do not set cooldown for triggered spells (needed by reincarnation)
- if(m_spellInfo->Attributes & (SPELL_ATTR_DISABLED_WHILE_ACTIVE | SPELL_ATTR_PASSIVE ) || m_IsTriggeredSpell)
+ // (1) have infinity cooldown but set at aura apply, (2) passive cooldown at triggering
+ if(m_spellInfo->Attributes & (SPELL_ATTR_DISABLED_WHILE_ACTIVE | SPELL_ATTR_PASSIVE))
return;

_player->AddSpellAndCategoryCooldowns(m_spellInfo,m_CastItem ? m_CastItem->GetEntry() : 0, this);

Патч на Trial of the Crusader tyt

качать все патчи перечеслиные тут Кряк

Патч на ЦЛК Самый работоспособный Тык
V.I.P (Аккаунты для тринити кор)

Quote
diff -r 06dff18c14c6 sql/updates/xxxx_01_realm_premium_accounts.sql
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sql/updates/xxxx_01_realm_premium_accounts.sql Sun Mar 21 11:25:32 2010 +0600
@@ -0,0 +1,8 @@
+CREATE TABLE IF NOT EXISTS `account_premium` (
+ `id` int(11) NOT NULL default '0' COMMENT 'Account id',
+ `setdate` bigint(40) NOT NULL default '0',
+ `unsetdate` bigint(40) NOT NULL default '0',
+ `premium_type` tinyint(4) unsigned NOT NULL default '1',
+ `active` tinyint(4) NOT NULL default '1',
+ PRIMARY KEY (`id`,`setdate`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Premium Accounts';
\ No newline at end of file
diff -r 06dff18c14c6 src/game/AuctionHouseBot.cpp
--- a/src/game/AuctionHouseBot.cpp Sat Mar 20 14:23:18 2010 +0600
+++ b/src/game/AuctionHouseBot.cpp Sun Mar 21 11:25:32 2010 +0600
@@ -692,7 +692,7 @@
if ((!AHBSeller) && (!AHBBuyer))
return;

- WorldSession _session(AHBplayerAccount, NULL, SEC_PLAYER, true, 0, LOCALE_enUS);
+ WorldSession _session(AHBplayerAccount, NULL, SEC_PLAYER, false, true, 0, LOCALE_enUS);
Player _AHBplayer(&_session);
_AHBplayer.MinimalLoadFromDB(QueryResult_AutoPtr(NULL), AHBplayerGUID);
ObjectAccessor::Instance().AddObject(&_AHBplayer);
diff -r 06dff18c14c6 src/game/Formulas.h
--- a/src/game/Formulas.h Sat Mar 20 14:23:18 2010 +0600
+++ b/src/game/Formulas.h Sun Mar 21 11:25:32 2010 +0600
@@ -124,7 +124,10 @@
if (u->GetTypeId() == TYPEID_UNIT && ((Creature*)u)->isElite())
xp_gain *= 2;

- return uint32(xp_gain*sWorld.getRate(RATE_XP_KILL));
+ float premium_rate = pl->GetSession()->IsPremium() ? sWorld.getRate(RATE_XP_KILL_PREMIUM) : 1.0f;
+
+ return uint32(xp_gain*sWorld.getRate(RATE_XP_KILL)*premium_rate);
+
}

inline float xp_in_group_rate(uint32 count, bool isRaid)
diff -r 06dff18c14c6 src/game/Player.cpp
--- a/src/game/Player.cpp Sat Mar 20 14:23:18 2010 +0600
+++ b/src/game/Player.cpp Sun Mar 21 11:25:32 2010 +0600
@@ -6136,6 +6136,8 @@
XP = uint32(objmgr.GetBaseXP(p->area_level)*sWorld.getRate(RATE_XP_EXPLORE));
}

+ if(GetSession()->IsPremium())
+ XP *= sWorld.getRate(RATE_XP_EXPLORE_PREMIUM);
GiveXP( XP, NULL );
SendExplorationExperience(area,XP);
}
@@ -14033,6 +14035,9 @@
for (Unit::AuraEffectList::const_iterator i = ModXPPctAuras.begin(); i != ModXPPctAuras.end(); ++i)
XP = uint32(XP*(1.0f + (*i)->GetAmount() / 100.0f));

+ if (GetSession()->IsPremium())
+ XP *= sWorld.getRate(RATE_XP_QUEST_PREMIUM);
+
if (getLevel() < sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL))
GiveXP(XP, NULL);
else
diff -r 06dff18c14c6 src/game/World.cpp
--- a/src/game/World.cpp Sat Mar 20 14:23:18 2010 +0600
+++ b/src/game/World.cpp Sun Mar 21 11:25:32 2010 +0600
@@ -487,9 +487,13 @@
rate_values[RATE_DROP_ITEM_ARTIFACT] = sConfig.GetFloatDefault("Rate.Drop.Item.Artifact", 1.0f);
rate_values[RATE_DROP_ITEM_REFERENCED] = sConfig.GetFloatDefault("Rate.Drop.Item.Referenced", 1.0f);
rate_values[RATE_DROP_MONEY] = sConfig.GetFloatDefault("Rate.Drop.Money", 1.0f);
- rate_values[RATE_XP_KILL] = sConfig.GetFloatDefault("Rate.XP.Kill", 1.0f);
- rate_values[RATE_XP_QUEST] = sConfig.GetFloatDefault("Rate.XP.Quest", 1.0f);
- rate_values[RATE_XP_EXPLORE] = sConfig.GetFloatDefault("Rate.XP.Explore", 1.0f);
+ rate_values[RATE_XP_KILL] = sConfig.GetFloatDefault("Rate.XP.Kill", 1.0f);
+ rate_values[RATE_XP_KILL_PREMIUM] = sConfig.GetFloatDefault("Rate.XP.Kill.Premium", 1.0f);
+ rate_values[RATE_XP_QUEST] = sConfig.GetFloatDefault("Rate.XP.Quest", 1.0f);
+ rate_values[RATE_XP_QUEST_PREMIUM] = sConfig.GetFloatDefault("Rate.XP.Quest.Premium", 1.0f);
+ rate_values[RATE_XP_EXPLORE] = sConfig.GetFloatDefault("Rate.XP.Explore", 1.0f);
+ rate_values[RATE_XP_EXPLORE_PREMIUM] = sConfig.GetFloatDefault("Rate.XP.Explore.Premium", 1.0f);
+
rate_values[RATE_REPAIRCOST] = sConfig.GetFloatDefault("Rate.RepairCost", 1.0f);
if (rate_values[RATE_REPAIRCOST] < 0.0f)
{
diff -r 06dff18c14c6 src/game/World.h
--- a/src/game/World.h Sat Mar 20 14:23:18 2010 +0600
+++ b/src/game/World.h Sun Mar 21 11:25:32 2010 +0600
@@ -305,8 +305,11 @@
RATE_DROP_ITEM_REFERENCED,
RATE_DROP_MONEY,
RATE_XP_KILL,
+ RATE_XP_KILL_PREMIUM,
RATE_XP_QUEST,
+ RA TE_XP_QUEST_PREMIUM,
RATE_XP_EXPLORE,
+ RATE_XP_EXPLORE_PREMIUM,
RATE_REPAIRCOST,
RATE_REPUTATION_GAIN,
RATE _REPUTATION_LOWLEVEL_KILL,
diff -r 06dff18c14c6 src/game/WorldSession.cpp
--- a/src/game/WorldSession.cpp Sat Mar 20 14:23:18 2010 +0600
+++ b/src/game/WorldSession.cpp Sun Mar 21 11:25:32 2010 +0600
@@ -44,9 +44,9 @@
#include "ScriptMgr.h"

/// WorldSession constructor
-WorldSession::WorldSession(uint32 id, WorldSocket *sock, AccountTypes sec, uint8 expansion, time_t mute_time, LocaleConstant locale) :
+WorldSession::WorldSession(uint32 id, WorldSocket *sock, AccountTypes sec, bool ispremium, uint8 expansion, time_t mute_time, LocaleConstant locale) :
LookingForGroup_auto_join(false), LookingForGroup_auto_add(false), m_muteTime(mute_time),
-_player(NULL), m_Socket(sock),_security(sec), _accountId(id), m_expansion(expansion),
+_player(NULL), m_Socket(sock),_security(sec), _ispremium(ispremium), _accountId(id), m_expansion(expansion),
m_sessionDbcLocale(sWorld.GetAvailableDbcLocale(locale)), m_sessionDbLocaleIndex(objmgr.GetIndexForLocale(locale)),
_logoutTime(0), m_inQueue(false), m_playerLoading(false), m_playerLogout(false), m_playerRecentlyLogout(false), m_playerSave(false),
m_latency(0), m_TutorialsChanged(false)
diff -r 06dff18c14c6 src/game/WorldSession.h
--- a/src/game/WorldSession.h Sat Mar 20 14:23:18 2010 +0600
+++ b/src/game/WorldSession.h Sun Mar 21 11:25:32 2010 +0600
@@ -99,7 +99,7 @@
{
friend class CharacterHandler;
public:
- WorldSession(uint32 id, WorldSocket *sock, AccountTypes sec, uint8 expansion, time_t mute_time, LocaleConstant locale);
+ WorldSession(uint32 id, WorldSocket *sock, AccountTypes sec, bool ispremium, uint8 expansion, time_t mute_time, LocaleConstant locale);
~WorldSession();

bool PlayerLoading() const { return m_playerLoading; }
@@ -126,6 +126,7 @@
void SendQueryTimeResponse();

AccountTypes GetSecurity() const { return _security; }
+ bool IsPremium() const { return _ispremium; }
uint32 GetAccountId() const { return _accountId; }
Player* GetPlayer() const { return _player; }
char const* GetPlayerName() const;
@@ -757,6 +758,7 @@
AccountTypes _security;
uint32 _accountId;
uint8 m_expansion;
+ bool _ispremium;

time_t _logoutTime;
bool m_inQueue; // session wait in auth.queue
diff -r 06dff18c14c6 src/game/WorldSocket.cpp
--- a/src/game/WorldSocket.cpp Sat Mar 20 14:23:18 2010 +0600
+++ b/src/game/WorldSocket.cpp Sun Mar 21 11:25:32 2010 +0600
@@ -720,6 +720,7 @@
//uint8 expansion = 0;
LocaleConstant locale;
std::string account;
+ bool isPremium = false;
Sha1Hash sha1;
BigNumber v, s, g, N;
WorldPacket packet, SendAddonPacked;
@@ -871,6 +872,16 @@
return -1;
}

+ QueryResult_AutoPtr premresult =
+ loginDatabase.PQuery ("SELECT 1 "
+ "FROM account_premium "
+ "WHERE id = '%u' "
+ "AND active = 1",
+ id);
+ if (premresult) // if account premium
+ {
+ isPremium = true;
+ }
// Check locked state for server
sWorld.UpdateAllowedSecurity();
AccountTypes allowedAccountType = sWorld.GetPlayerSecurityLimit ();
@@ -927,7 +938,7 @@
safe_account.c_str ());

// NOTE ATM the socket is single-threaded, have this in mind ...
- ACE_NEW_RETURN (m_Session, WorldSession (id, this, AccountTypes(security), expansion, mutetime, locale), -1);
+ ACE_NEW_RETURN (m_Session, WorldSession (id, this, AccountTypes(security), isPremium, expansion, mutetime, locale), -1);

m_Crypt.Init(&K);

diff -r 06dff18c14c6 src/trinitycore/trinitycore.conf.dist
--- a/src/trinitycore/trinitycore.conf.dist Sat Mar 20 14:23:18 2010 +0600
+++ b/src/trinitycore/trinitycore.conf.dist Sun Mar 21 11:25:32 2010 +0600
@@ -1456,6 +1456,11 @@
# Rate.XP.Explore
# XP rates
# Default: 1
+# Rate.XP.Kill.Premium
+# Rate.XP.Quest.Premium
+# Rate.XP.Explore.Premium
+# XP rates Premium modifier
+# Default: 1
#
# Rate.XP.PastLevel70
# XP needed per level past 70 (Rates below 1 not recommended)
@@ -1627,6 +1632,9 @@
Rate.XP.Kill = 1
Rate.XP.Quest = 1
Rate.XP.Explore = 1
+Rate.XP.Kill.Premium = 1
+Rate.XP.Quest.Premium = 1
+Rate.XP.Explore.Premium = 1
Rate.XP.PastLevel70 = 1
Rate.RepairCost = 1
Rate.Rest.InGame = 1
diff -r 06dff18c14c6 src/trinityrealm/AuthSocket.cpp
--- a/src/trinityrealm/AuthSocket.cpp Sat Mar 20 14:23:18 2010 +0600
+++ b/src/trinityrealm/AuthSocket.cpp Sun Mar 21 11:25:32 2010 +0600
@@ -408,6 +408,8 @@
{
//set expired bans to inactive
loginDatabase.Execute("UPDATE account_banned SET active = 0 WHERE unbandate<=UNIX_TIMESTAMP() AND unbandate<>bandate");
+ loginDatabase.Execute("UPDATE account_premium SET active = 0 WHERE unsetdate<=UNIX_TIMESTAMP() AND unsetdate<>setdate");
+
///- If the account is banned, reject the logon attempt
&nb



 
Форум » TrinityCore » Ядра TrinityCore » Много патчей для офф ядра тринити
Страница 1 из 11
Поиск:



Copyright WoWsoft © 2010 | Карта сайта | Карта форума Хостинг от uCoz
При использовании материалов необходимо наличие прямой индексируемой ссылки на первоисточник
WoWsoft — World of Warcraft портал — Статьи World of Warcraft | Аддоны для WoW | Патчи World of Warcraft | Cервера WoW | Новости WoW