Форум /forum/ Форум Sun, 26 Aug 2012 17:35:50 GMT uCoz Web-Service Вендор с бесплатным Т8. /forum/15-1842-1 Sun, 26 Aug 2012 17:35:50 GMT Форум: <a href="/forum/15">Патчи</a><br />Автор темы: Dispeller<br />Автор последнего сообщения: Dispeller<br />Количество ответов: 0 Вендор с бесплатным Т8. Возможно кому-нибудь понадобится как и для фан серверов, так и для обычных на Ваше усмотрение: <br /><br /> <span style="color:green">подойдет и для мангос 3.3.5</span> <br /><br /> вот и сами вендоры: <br /><br /> <!--uzcode--><div class="bbCodeBlock"><div class="bbCodeName" style="padding-left:5px;font-weight:bold;font-size:7pt">Code</div><div class="codeMessage" style="border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight<5?this.style.height:scrollHeight>200?'200px':''+(this.scrollHeight+5)+'px');"><!--uzc-->REPLACE INTO `creature_template` (`entry`, `difficulty_entry_1`, `difficulty_entry_2`, `difficulty_entry_3`, `KillCredit1`, `KillCredit2`, `modelid1`, `modelid2`, `modelid3`, `modelid4`, `name`, `subname`, `IconName`, `gossip_menu_id`, `minlevel`, `maxlevel`, `exp`, `faction_A`, `faction_H`, `npcflag`, `speed_walk`, `speed_run`, `scale`, `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`, `spell5`, `spell6`, `spell7`, `spell8`, `PetSpellDataId`, `VehicleId`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `Health_mod`, `Mana_mod`, `Armor_mod`, `RacialLeader`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `movementId`, `RegenHealth`, `equipment_id`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`, `WDBVerified`&#41; VALUES (900002, 0, 0, 0, 0, 0, 29489, 0, 29489, 0, 'Server weapon aciton', 'Dew-WoW x100', '', 0, 80, 100, 0, 35, 35, 3968, 1, 1.14286, 1, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 3, 10000000, 10000000, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, '', 1&#41;; <br /><br /> DELETE FROM `npc_vendor` WHERE (`entry`=900002&#41;; <br /> INSERT INTO `npc_vendor` (`entry`, `slot`, `item`, `maxcount`, `incrtime`, `ExtendedCost`&#41; VALUES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> (900002, 0, 18542, 0, 0, 0&#41;, <br /> (900002, 99, 39200, 0, 0, 0&#41;, <br /> (900002, 96, 39270, 0, 0, 0&#41;, <br /> (900002, 97, 39271, 0, 0, 0&#41;, <br /> (900002, 98, 39276, 0, 0, 0&#41;, <br /> (900002, 101, 39281, 0, 0, 0&#41;, <br /> (900002, 103, 39291, 0, 0, 0&#41;, <br /> (900002, 100, 39344, 0, 0, 0&#41;, <br /> (900002, 102, 39394, 0, 0, 0&#41;, <br /> (900002, 105, 39416, 0, 0, 0&#41;, <br /> (900002, 104, 39417, 0, 0, 0&#41;, <br /> (900002, 110, 39419, 0, 0, 0&#41;, <br /> (900002, 108, 39422, 0, 0, 0&#41;, <br /> (900002, 107, 39423, 0, 0, 0&#41;, <br /> (900002, 106, 39424, 0, 0, 0&#41;, <br /> (900002, 109, 39426, 0, 0, 0&#41;, <br /> (900002, 86, 45335, 0, 0, 0&#41;, <br /> (900002, 87, 45336, 0, 0, 0&#41;, <br /> (900002, 88, 45337, 0, 0, 0&#41;, <br /> (900002, 89, 45338, 0, 0, 0&#41;, <br /> (900002, 90, 45339, 0, 0, 0&#41;, <br /> (900002, 91, 45340, 0, 0, 0&#41;, <br /> (900002, 92, 45341, 0, 0, 0&#41;, <br /> (900002, 93, 45342, 0, 0, 0&#41;, <br /> (900002, 94, 45343, 0, 0, 0&#41;, <br /> (900002, 95, 45344, 0, 0, 0&#41;, <br /> (900002, 71, 45345, 0, 0, 0&#41;, <br /> (900002, 72, 45346, 0, 0, 0&#41;, <br /> (900002, 73, 45347, 0, 0, 0&#41;, <br /> (900002, 74, 45348, 0, 0, 0&#41;, <br /> (900002, 75, 45349, 0, 0, 0&#41;, <br /> (900002, 82, 45351, 0, 0, 0&#41;, <br /> (900002, 83, 45352, 0, 0, 0&#41;, <br /> (900002, 84, 45353, 0, 0, 0&#41;, <br /> (900002, 85, 45354, 0, 0, 0&#41;, <br /> (900002, 76, 45355, 0, 0, 0&#41;, <br /> (900002, 77, 45356, 0, 0, 0&#41;, <br /> (900002, 78, 45357, 0, 0, 0&#41;, <br /> (900002, 79, 45358, 0, 0, 0&#41;, <br /> (900002, 80, 45359, 0, 0, 0&#41;, <br /> (900002, 66, 45360, 0, 0, 0&#41;, <br /> (900002, 67, 45361, 0, 0, 0&#41;, <br /> (900002, 68, 45362, 0, 0, 0&#41;, <br /> (900002, 69, 45363, 0, 0, 0&#41;, <br /> (900002, 70, 45364, 0, 0, 0&#41;, <br /> (900002, 61, 45365, 0, 0, 0&#41;, <br /> (900002, 62, 45367, 0, 0, 0&#41;, <br /> (900002, 63, 45368, 0, 0, 0&#41;, <br /> (900002, 64, 45369, 0, 0, 0&#41;, <br /> (900002, 56, 45370, 0, 0, 0&#41;, <br /> (900002, 57, 45371, 0, 0, 0&#41;, <br /> (900002, 58, 45372, 0, 0, 0&#41;, <br /> (900002, 59, 45373, 0, 0, 0&#41;, <br /> (900002, 60, 45374, 0, 0, 0&#41;, <br /> (900002, 46, 45375, 0, 0, 0&#41;, <br /> (900002, 47, 45376, 0, 0, 0&#41;, <br /> (900002, 48, 45377, 0, 0, 0&#41;, <br /> (900002, 49, 45379, 0, 0, 0&#41;, <br /> (900002, 50, 45380, 0, 0, 0&#41;, <br /> (900002, 51, 45381, 0, 0, 0&#41;, <br /> (900002, 52, 45382, 0, 0, 0&#41;, <br /> (900002, 53, 45383, 0, 0, 0&#41;, <br /> (900002, 54, 45384, 0, 0, 0&#41;, <br /> (900002, 55, 45385, 0, 0, 0&#41;, <br /> (900002, 36, 45391, 0, 0, 0&#41;, <br /> (900002, 37, 45392, 0, 0, 0&#41;, <br /> (900002, 38, 45393, 0, 0, 0&#41;, <br /> (900002, 39, 45394, 0, 0, 0&#41;, <br /> (900002, 40, 45395, 0, 0, 0&#41;, <br /> (900002, 41, 45396, 0, 0, 0&#41;, <br /> (900002, 42, 45397, 0, 0, 0&#41;, <br /> (900002, 43, 45398, 0, 0, 0&#41;, <br /> (900002, 44, 45399, 0, 0, 0&#41;, <br /> (900002, 45, 45400, 0, 0, 0&#41;, <br /> (900002, 16, 45401, 0, 0, 0&#41;, <br /> (900002, 17, 45402, 0, 0, 0&#41;, <br /> (900002, 18, 45403, 0, 0, 0&#41;, <br /> (900002, 19, 45404, 0, 0, 0&#41;, <br /> (900002, 20, 45405, 0, 0, 0&#41;, <br /> (900002, 26, 45406, 0, 0, 0&#41;, <br /> (900002, 27, 45408, 0, 0, 0&#41;, <br /> (900002, 28, 45409, 0, 0, 0&#41;, <br /> (900002, 29, 45410, 0, 0, 0&#41;, <br /> (900002, 30, 45411, 0, 0, 0&#41;, <br /> (900002, 21, 45412, 0, 0, 0&#41;, <br /> (900002, 22, 45413, 0, 0, 0&#41;, <br /> (900002, 23, 45414, 0, 0, 0&#41;, <br /> (900002, 24, 45415, 0, 0, 0&#41;, <br /> (900002, 25, 45416, 0, 0, 0&#41;, <br /> (900002, 11, 45417, 0, 0, 0&#41;, <br /> (900002, 13, 45419, 0, 0, 0&#41;, <br /> (900002, 14, 45420, 0, 0, 0&#41;, <br /> (900002, 15, 45421, 0, 0, 0&#41;, <br /> (900002, 12, 45422, 0, 0, 0&#41;, <br /> (900002, 8, 45424, 0, 0, 0&#41;, <br /> (900002, 6, 45425, 0, 0, 0&#41;, <br /> (900002, 9, 45426, 0, 0, 0&#41;, <br /> (900002, 10, 45427, 0, 0, 0&#41;, <br /> (900002, 7, 45428, 0, 0, 0&#41;, <br /> (900002, 3, 45429, 0, 0, 0&#41;, <br /> (900002, 4, 45430, 0, 0, 0&#41;, <br /> (900002, 1, 45431, 0, 0, 0&#41;, <br /> (900002, 5, 45432, 0, 0, 0&#41;, <br /> (900002, 2, 45433, 0, 0, 0&#41;, <br /> (900002, 31, 45436, 0, 0, 0&#41;, <br /> (900002, 32, 45437, 0, 0, 0&#41;, <br /> (900002, 33, 45438, 0, 0, 0&#41;, <br /> (900002, 34, 45439, 0, 0, 0&#41;, <br /> (900002, 35, 45440, 0, 0, 0&#41;, <br /> (900002, 65, 46131, 0, 0, 0&#41;, <br /> (900002, 81, 46313, 0, 0, 0&#41;;<!--/uzc--></div></div><!--/uzcode--> <br /><br /> Установка: <br /> 1. скопировать в любой файл с расширением .sql <br /> 2. залить в базу <span style="color:red">Wolrd (Trinity core)</span> или <span style="color:green">Mangos (Mangos core)</span> <br /> 3. сделать рестарт сервера. <br /><br /> и можно играть) Патчи Dispeller /forum/15-1842-1 [patch] Антимат /forum/15-1841-1 Sun, 26 Aug 2012 17:35:26 GMT Форум: <a href="/forum/15">Патчи</a><br />Автор темы: Dispeller<br />Автор последнего сообщения: Dispeller<br />Количество ответов: 0 Выкладываю для Вас патч - Антимат. <br /><br /> Что может делать скрипт: <br /><br /> фильтровать чат <br /> определять мат в чате <br /> попытки обменять персонажей <br /> оскорбление администрации <br /><br /> <!--uzcode--><div class="bbCodeBlock"><div class="bbCodeName" style="padding-left:5px;font-weight:bold;font-size:7pt">Code</div><div class="codeMessage" style="border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight<5?this.style.height:scrollHeight>200?'200px':''+(this.scrollHeight+5)+'px');"><!--uzc--> <br /> bool CheckMessage( Player* player, std::string& msg&#41; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( IgnoreGMFilterCheck && player->GetSession(&#41;->GetSecurity(&#41; >= SEC_MODERATOR &#41; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int val = Filter->check(msg&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( val &#41; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch (val&#41; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case 1: <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( bFinePlayer &#41; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( FinePlayer(player,mat_gold_amount&#41; &#41; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;player->GetSession(&#41;->SendNotification("You lost %d gold. Swearing is not allowed",mat_gold_amount&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PunishPlayer(player&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;player->GetSession(&#41;->SendNotification("Swearing is not allowed. You got punished because you have no money to pay the fine"&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg = ""; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sLog->outAntimat("&#91;MAT] Player %s sends: %s",player->GetName(&#41;, msg.c_str(&#41;&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case 2: <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( bFinePlayer &#41; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( FinePlayer(player,obmen_gold_amount&#41; &#41; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;player->GetSession(&#41;->SendNotification("Character exchange is forbidden on this server. You lost %d gold",obmen_gold_amount&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PunishPlayer(player&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;player->GetSession(&#41;->SendNotification("Character exchange is forbidden on this server. You got punished because you have no money to pay the fine"&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;player->GetSession(&#41;->m_muteTime = time(0&#41; + 60; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sLog->outAntimat("&#91;OBMEN] Player %s sends: %s",player->GetName(&#41;, msg.c_str(&#41;&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg = ""; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case 3: <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( bFinePlayer &#41; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( FinePlayer(player,jokes_gold_amount&#41; &#41; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;player->GetSession(&#41;->SendNotification("Stupid jokes are forbidden on this server. You lost %d gold",jokes_gold_amount&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PunishPlayer(player&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;player->GetSession(&#41;->SendNotification("Stupid jokes are forbidden on this server. You got punished becauseyou have no money to pay the fine"&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;player->GetSession(&#41;->m_muteTime = time(0&#41; + 60; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sLog->outAntimat("&#91;TRASH] Player %s sends: %s",player->GetName(&#41;, msg.c_str(&#41;&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg = ""; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case 4: <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( bFinePlayer &#41; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( FinePlayer(player,offence_gold_amount&#41; &#41; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;player->GetSession(&#41;->SendNotification("Offence is not allowed on this server. You lost %d gold",offence_gold_amount&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PunishPlayer(player&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;player->GetSession(&#41;->SendNotification("You got punished because you have no money to pay the fine"&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;player->GetSession(&#41;->m_muteTime = time(0&#41; + 60; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sLog->outAntimat("&#91;OFFENCE] Player %s sends: %s",player->GetName(&#41;, msg.c_str(&#41;&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg = ""; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<!--/uzc--></div></div><!--/uzcode--> <br /><br /> Настройка производится в worldserver.conf <br /><br /> Вывод в antimat.log: <br /> <!--uzcode--><div class="bbCodeBlock"><div class="bbCodeName" style="padding-left:5px;font-weight:bold;font-size:7pt">Code</div><div class="codeMessage" style="border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight<5?this.style.height:scrollHeight>200?'200px':''+(this.scrollHeight+5)+'px');"><!--uzc--> <br /> 2011-08-27 15:35:34 &#91;OBMEN] Player Test sends: обменяю паладина 6700 гс в пм <br /> 2011-08-27 15:36:35 &#91;OFFENCE] Player Test sends: админ мудак <br /> 2011-08-27 15:37:46 &#91;MAT] Player Test sends: mUdаК <br /> 2011-08-27 15:38:51 &#91;OBMEN] Player Test sends: Obmenjau pа1adina в пм <br /> 2011-08-27 15:40:28 &#91;MAT] Player Test sends: P1ZdеЦ <!--/uzc--></div></div><!--/uzcode--> <br /><br /> <a class="link" href="/go?http://narod.ru/disk/24019223001/code.zip.html" title="http://narod.ru/disk/24019223001/code.zip.html" rel="nofollow" target="_blank">Скачать патч.</a> <br /><br /> <a class="link" href="/go?http://www.trinity-core.ru/threads/wowantimat.6517/" title="http://www.trinity-core.ru/threads/wowantimat.6517/" rel="nofollow" target="_blank">Источник</a> Патчи Dispeller /forum/15-1841-1 Аннонс При входе в игру игрока /forum/15-1840-1 Sun, 26 Aug 2012 17:34:56 GMT Форум: <a href="/forum/15">Патчи</a><br />Автор темы: Dispeller<br />Автор последнего сообщения: Dispeller<br />Количество ответов: 0 <!--uzcode--><div class="bbCodeBlock"><div class="bbCodeName" style="padding-left:5px;font-weight:bold;font-size:7pt">Code</div><div class="codeMessage" style="border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight<5?this.style.height:scrollHeight>200?'200px':''+(this.scrollHeight+5)+'px');"><!--uzc-->#include "ScriptPCH.h"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /> class Announce_OnPlayerLogin : public PlayerScript&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> public:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> Announce_OnPlayerLogin(&#41; : PlayerScript("Announce_OnPlayerLogin"&#41; {}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /> void OnLogin(Player * player&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> char msg&#91;500];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> sprintf(msg, "|CFF00FF00Игрок |cffffffff%s |CFF00FF00Входит в игру!",player->GetName(&#41;&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> sWorld->SendWorldText(LANG_SYSTEMMESSAGE, msg&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> };&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> void AddSC_OnLogin(&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> new Announce_OnPlayerLogin;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> } <!--/uzc--></div></div><!--/uzcode--> Патчи Dispeller /forum/15-1840-1 [mod] Платная отправка сообщений в лфг /forum/15-1839-1 Sun, 26 Aug 2012 17:34:27 GMT Форум: <a href="/forum/15">Патчи</a><br />Автор темы: Dispeller<br />Автор последнего сообщения: Dispeller<br />Количество ответов: 0 Собственно отправка сообщения в лфг стоит определённое в конфиге количество хонора, если хонора не достаточно, то выводить об этом сообщение. <br /> <a class="link" href="/go?http://code.trinity-core.ru/1013/" title="http://code.trinity-core.ru/1013/" rel="nofollow" target="_blank">Патч.</a> <br /> <!--uzcode--><div class="bbCodeBlock"><div class="bbCodeName" style="padding-left:5px;font-weight:bold;font-size:7pt">Code</div><div class="codeMessage" style="border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight<5?this.style.height:scrollHeight>200?'200px':''+(this.scrollHeight+5)+'px');"><!--uzc-->DELETE FROM `trinity_string` WHERE `entry` = 11002;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> INSERT INTO `trinity_string` (`entry`, `content_default`, `content_loc8`&#41; VALUES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> ('11002', 'not enought honor.', 'недостаточно хонора.'&#41;;<!--/uzc--></div></div><!--/uzcode--> Патчи Dispeller /forum/15-1839-1 [mod] External mail /forum/15-1838-1 Sun, 26 Aug 2012 17:34:06 GMT Форум: <a href="/forum/15">Патчи</a><br />Автор темы: Dispeller<br />Автор последнего сообщения: Dispeller<br />Количество ответов: 0 <!--uSpoiler--><div class="uSpoilerClosed" id="uSpoilerFzrf9b"><div class="uSpoilerButBl"><input type="button" class="uSpoilerButton" onclick="if($('#uSpoilerFzrf9b')[0]){if ($('.uSpoilerText',$('#uSpoilerFzrf9b'))[0].style.display=='none'){$('.uSpoilerText',$('#uSpoilerFzrf9b'))[0].style.display='';$('.uSpoilerButton',$('#uSpoilerFzrf9b')).val('[&#92;&#8211;] Патч');$('#uSpoilerFzrf9b').attr('class','uSpoilerOpened');}else {$('.uSpoilerText',$('#uSpoilerFzrf9b'))[0].style.display='none';$('.uSpoilerButton',$('#uSpoilerFzrf9b')).val('[+] Патч');$('#uSpoilerFzrf9b').attr('class','uSpoilerClosed');}}" value="[+] Патч"/></div><div class="uSpoilerText" style="display:none;"><!--ust--><!--uzcode--><div class="bbCodeBlock"><div class="bbCodeName" style="padding-left:5px;font-weight:bold;font-size:7pt">Code</div><div class="codeMessage" style="border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight<5?this.style.height:scrollHeight>200?'200px':''+(this.scrollHeight+5)+'px');"><!--uzc--># HG changeset patch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> # User skel.wow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> # Date 1288423255 -10800&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> # Node ID c373e21d91d2fb2e51596eaa81328594e31db1c9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> # Parent&nbsp;&nbsp;f3f271b3107146d076abe25d6b832f9b693953bb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> add external mail&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /> diff -r f3f271b31071 -r c373e21d91d2 src/server/game/Mails/Mail.cpp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> --- a/src/server/game/Mails/Mail.cpp&nbsp;&nbsp;&nbsp;&nbsp;Sat Oct 30 09:49:41 2010 +0300&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +++ b/src/server/game/Mails/Mail.cpp&nbsp;&nbsp;&nbsp;&nbsp;Sat Oct 30 10:20:55 2010 +0300&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -255,3 +255,86 @@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;deleteIncludedItems(temp&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +void WorldSession::SendExternalMails(&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;sLog.outString("EXTERNAL MAIL> Sending mails in queue..."&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;QueryResult result = CharacterDatabase.Query("SELECT id,receiver,subject,message,money,item,item_count FROM mail_external"&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;SQLTransaction trans = CharacterDatabase.BeginTransaction(&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;if(!result&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sLog.outString("EXTERNAL MAIL> No mails in queue..."&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete result;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32 last_id = 0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MailDraft* mail = NULL;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32 last_receiver_guid;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Field *fields = result->Fetch(&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32 id = fields&#91;0].GetUInt32(&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint64 receiver_guid = fields&#91;1].GetUInt64(&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::string subject = fields&#91;2].GetString(&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::string body = fields&#91;3].GetString(&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32 money = fields&#91;4].GetUInt32(&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32 itemId = fields&#91;5].GetUInt32(&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32 itemCount = fields&#91;6].GetUInt32(&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Player *receiver = sObjectMgr.GetPlayer( receiver_guid &#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (id != last_id&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// send mail&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (last_id != 0&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sLog.outString("EXTERNAL MAIL> Sending mail to character with guid %d", last_receiver_guid&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mail->SendMailTo(trans,MailReceiver(last_receiver_guid&#41;, MailSender(MAIL_NORMAL, 0, MAIL_STATIONERY_GM&#41;, MAIL_CHECK_MASK_RETURNED&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete mail;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CharacterDatabase.PExecute("DELETE FROM mail_external WHERE id=%u", last_id&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sLog.outString("EXTERNAL MAIL> Mail sent"&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Create the maildraft&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mail = new MailDraft( subject, body &#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(money&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sLog.outString("EXTERNAL MAIL> Adding money"&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mail->AddMoney(money&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (itemId&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sLog.outString("EXTERNAL MAIL> Adding %u of item with id %u", itemCount, itemId&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Item* mailItem = Item::CreateItem( itemId, itemCount, receiver &#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mailItem->SaveToDB(trans&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mail->AddItem(mailItem&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last_id = id;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last_receiver_guid = receiver_guid;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while( result->NextRow(&#41; &#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// we only send a mail when mail_id!=last_mail_id, so we need to send the very last mail here:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (last_id != 0&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// send last mail&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sLog.outString("EXTERNAL MAIL> Sending mail to character with guid %d", last_receiver_guid&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mail->SendMailTo(trans,MailReceiver(last_receiver_guid&#41;, MailSender(MAIL_NORMAL, 0, MAIL_STATIONERY_GM&#41;, MAIL_CHECK_MASK_RETURNED&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete mail;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CharacterDatabase.PExecute("DELETE FROM mail_external WHERE id=%u", last_id&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sLog.outString("EXTERNAL MAIL> Mail sent"&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;CharacterDatabase.CommitTransaction(trans&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;sLog.outString("EXTERNAL MAIL> All Mails Sent..."&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> &#92; No newline at end of file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> diff -r f3f271b31071 -r c373e21d91d2 src/server/game/Server/WorldSession.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> --- a/src/server/game/Server/WorldSession.h&nbsp;&nbsp;&nbsp;&nbsp;Sat Oct 30 09:49:41 2010 +0300&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +++ b/src/server/game/Server/WorldSession.h&nbsp;&nbsp;&nbsp;&nbsp;Sat Oct 30 10:20:55 2010 +0300&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -261,6 +261,7 @@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//used with item_page table&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static void SendExternalMails(&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bool SendItemInfo(uint32 itemid, WorldPacket data&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//auction&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void SendAuctionHello(uint64 guid, Creature * unit&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> diff -r f3f271b31071 -r c373e21d91d2 src/server/game/World/World.cpp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> --- a/src/server/game/World/World.cpp&nbsp;&nbsp;&nbsp;&nbsp;Sat Oct 30 09:49:41 2010 +0300&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +++ b/src/server/game/World/World.cpp&nbsp;&nbsp;&nbsp;&nbsp;Sat Oct 30 10:20:55 2010 +0300&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -881,7 +881,10 @@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_int_configs&#91;CONFIG_GROUP_VISIBILITY] = sConfig.GetIntDefault("Visibility.GroupMode", 1&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_int_configs&#91;CONFIG_MAIL_DELIVERY_DELAY] = sConfig.GetIntDefault("MailDeliveryDelay",HOUR&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;m_int_configs&#91;CONFIG_EXTERNAL_MAIL] = sConfig.GetIntDefault("ExternalMail", 0&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;m_int_configs&#91;CONFIG_EXTERNAL_MAIL_INTERVAL] = sConfig.GetIntDefault("ExternalMailInterval", 1&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_int_configs&#91;CONFIG_UPTIME_UPDATE] = sConfig.GetIntDefault("UpdateUptimeInterval", 10&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (int32(m_int_configs&#91;CONFIG_UPTIME_UPDATE]&#41; <= 0&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -1701,7 +1704,7 @@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//one second is 1000 -(tested on win system&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//TODO: Get rid of magic numbers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mail_timer = ((((localtime(&m_gameTime&#41;->tm_hour + 20&#41; % 24&#41;* HOUR * IN_MILLISECONDS&#41; / m_timers&#91;WUPDATE_AUCTIONS].GetInterval(&#41;&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//1440&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;extmail_timer.SetInterval(m_int_configs&#91;CONFIG_EXTERNAL_MAIL_INTERVAL] * MINUTE * IN_MILLISECONDS&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//1440&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mail_timer_expires = ((DAY * IN_MILLISECONDS&#41; / (m_timers&#91;WUPDATE_AUCTIONS].GetInterval(&#41;&#41;&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sLog.outDebug("Mail timer set to: " UI64FMTD ", mail return is called every " UI64FMTD " minutes", uint64(mail_timer&#41;, uint64(mail_timer_expires&#41;&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -1920,6 +1923,17 @@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (m_gameTime > m_NextRandomBGReset&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResetRandomBG(&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;/// Handle external mail&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;if (m_int_configs&#91;CONFIG_EXTERNAL_MAIL] != 0&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extmail_timer.Update(diff&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (extmail_timer.Passed(&#41;&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WorldSession::SendExternalMails(&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extmail_timer.Reset(&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/// <ul><li> Handle auctions when the timer has passed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (m_timers&#91;WUPDATE_AUCTIONS].Passed(&#41;&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> diff -r f3f271b31071 -r c373e21d91d2 src/server/game/World/World.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> --- a/src/server/game/World/World.h&nbsp;&nbsp;&nbsp;&nbsp;Sat Oct 30 09:49:41 2010 +0300&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +++ b/src/server/game/World/World.h&nbsp;&nbsp;&nbsp;&nbsp;Sat Oct 30 10:20:55 2010 +0300&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -236,6 +236,8 @@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_START_GM_LEVEL,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_GROUP_VISIBILITY,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_MAIL_DELIVERY_DELAY,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_EXTERNAL_MAIL,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_EXTERNAL_MAIL_INTERVAL,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_UPTIME_UPDATE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_SKILL_CHANCE_ORANGE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_SKILL_CHANCE_YELLOW,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -793,6 +795,7 @@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time_t m_startTime;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time_t m_gameTime;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntervalTimer m_timers&#91;WUPDATE_COUNT];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntervalTimer extmail_timer;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time_t mail_timer;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time_t mail_timer_expires;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32 m_updateTime, m_updateTimeSum;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> diff -r f3f271b31071 -r c373e21d91d2 src/server/worldserver/worldserver.conf.dist&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> --- a/src/server/worldserver/worldserver.conf.dist&nbsp;&nbsp;&nbsp;&nbsp;Sat Oct 30 09:49:41 2010 +0300&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +++ b/src/server/worldserver/worldserver.conf.dist&nbsp;&nbsp;&nbsp;&nbsp;Sat Oct 30 10:20:55 2010 +0300&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -911,6 +911,15 @@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mail delivery delay time for item sending&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default: 3600 sec (1 hour&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;ExternalMail&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enable external mail delivery from mail_external table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default: 0 (disabled&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1 (enabled&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;ExternalMailInterval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mail delivery delay time for item sending from mail_external table, in minutes.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default: 1 minute&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;SkillChance.Prospecting&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For prospecting skillup impossible by default,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;but can be allowed as custom setting&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -1011,6 +1020,8 @@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MaxGroupXPDistance = 74&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MaxRecruitAFriendBonusDistance = 100&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MailDeliveryDelay = 3600&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +ExternalMail = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +ExternalMailInterval = 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SkillChance.Prospecting = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SkillChance.Milling = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OffhandCheckAtSpellUnlearn = 1<!--/uzc--></div></div><!--/uzcode--><!--/ust--><!--usn(=Патч)--></div></div><!--/uSpoiler--> <br /> <!--uSpoiler--><div class="uSpoilerClosed" id="uSpoilerg47Ih_"><div class="uSpoilerButBl"><input type="button" class="uSpoilerButton" onclick="if($('#uSpoilerg47Ih_')[0]){if ($('.uSpoilerText',$('#uSpoilerg47Ih_'))[0].style.display=='none'){$('.uSpoilerText',$('#uSpoilerg47Ih_'))[0].style.display='';$('.uSpoilerButton',$('#uSpoilerg47Ih_')).val('[&#92;&#8211;] SQL');$('#uSpoilerg47Ih_').attr('class','uSpoilerOpened');}else {$('.uSpoilerText',$('#uSpoilerg47Ih_'))[0].style.display='none';$('.uSpoilerButton',$('#uSpoilerg47Ih_')).val('[+] SQL');$('#uSpoilerg47Ih_').attr('class','uSpoilerClosed');}}" value="[+] SQL"/></div><div class="uSpoilerText" style="display:none;"><!--ust-->В базу characters <br /> <!--uzcode--><div class="bbCodeBlock"><div class="bbCodeName" style="padding-left:5px;font-weight:bold;font-size:7pt">Code</div><div class="codeMessage" style="border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight<5?this.style.height:scrollHeight>200?'200px':''+(this.scrollHeight+5)+'px');"><!--uzc-->CREATE TABLE `mail_external` (&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`id` bigint(20&#41; unsigned NOT NULL auto_increment,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`receiver` bigint(20&#41; unsigned NOT NULL,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`subject` varchar(200&#41; default 'Support Message',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`message` varchar(500&#41; default 'Support Message',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`money` bigint(20&#41; unsigned NOT NULL default '0',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`item` bigint(20&#41; unsigned NOT NULL default '0',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`item_count` bigint(20&#41; unsigned NOT NULL default '0',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PRIMARY KEY&nbsp;&nbsp;(`id`&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> &#41; ENGINE=MyISAM AUTO_INCREMENT=7525 DEFAULT CHARSET=utf8;<!--/uzc--></div></div><!--/uzcode--><!--/ust--><!--usn(=SQL)--></div></div><!--/uSpoiler--> Патчи Dispeller /forum/15-1838-1 [mod] Damage Checker (проверка урона) /forum/15-1837-1 Sun, 26 Aug 2012 17:33:43 GMT Форум: <a href="/forum/15">Патчи</a><br />Автор темы: Dispeller<br />Автор последнего сообщения: Dispeller<br />Количество ответов: 0 <!--uzcode--><div class="bbCodeBlock"><div class="bbCodeName" style="padding-left:5px;font-weight:bold;font-size:7pt">Code</div><div class="codeMessage" style="border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight<5?this.style.height:scrollHeight>200?'200px':''+(this.scrollHeight+5)+'px');"><!--uzc-->Checking the damage the player. By Rescr1pt <img src="http&#58;//s54.ucoz.net/sm/23/wink.gif" border="0" align="absmiddle" alt="wink" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> src/server/game/World/World.h |&nbsp;&nbsp;&nbsp;&nbsp;3 +++&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> 1 files changed, 3 insertions(+&#41;, 0 deletions(-&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> index 95e9fbd..c35b46d 100755&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> --- a/src/server/game/World/World.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +++ b/src/server/game/World/World.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -317,6 +317,9 @@ enum WorldIntConfigs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_WARDEN_CLIENT_BAN_DURATION,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_WARDEN_NUM_MEM_CHECKS,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_WARDEN_NUM_OTHER_CHECKS,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_DAMAGE_CHECKER_MAX_DAMAGE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_DAMAGE_CHECKER_IMMUNE_MIN_GM_LEVEL,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_DAMAGE_CHECKER_BAN_VALUE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INT_CONFIG_VALUE_COUNT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> };&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> src/server/game/World/World.cpp |&nbsp;&nbsp;&nbsp;&nbsp;5 +++++&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> 1 files changed, 5 insertions(+&#41;, 0 deletions(-&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> index ccc8bb2..5b4e912 100755&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> --- a/src/server/game/World/World.cpp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +++ b/src/server/game/World/World.cpp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -1200,6 +1200,11 @@ void World::LoadConfigSettings(bool reload&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_bool_configs&#91;CONFIG_PDUMP_NO_PATHS] = ConfigMgr::GetBoolDefault("PlayerDump.DisallowPaths", true&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_bool_configs&#91;CONFIG_PDUMP_NO_OVERWRITE] = ConfigMgr::GetBoolDefault("PlayerDump.DisallowOverwrite", true&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;// damage checker&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;m_int_configs&#91;CONFIG_DAMAGE_CHECKER_MAX_DAMAGE] = ConfigMgr::GetIntDefault("DamageChecker.MaxDamage", 50000&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;m_int_configs&#91;CONFIG_DAMAGE_CHECKER_IMMUNE_MIN_GM_LEVEL] = ConfigMgr::GetIntDefault("DamageChecker.ImmuneMinGMLevel", 1&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;m_int_configs&#91;CONFIG_DAMAGE_CHECKER_BAN_VALUE] = ConfigMgr::GetIntDefault("DamageChecker.BanValue", 3600&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// call ScriptMgr if we're reloading the configuration&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (reload&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sScriptMgr->OnConfigLoad(reload&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> src/server/game/Entities/Unit/Unit.cpp |&nbsp;&nbsp;14 ++++++++++++++&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> 1 files changed, 14 insertions(+&#41;, 0 deletions(-&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> index d71f8e8..5ea95cf 100755&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> --- a/src/server/game/Entities/Unit/Unit.cpp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +++ b/src/server/game/Entities/Unit/Unit.cpp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -655,6 +655,20 @@ uint32 Unit::DealDamage(Unit* victim, uint32 damage, CleanDamage const* cleanDam&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sLog->outStaticDebug("DealDamageStart"&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;// damage checker&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;if(GetTypeId(&#41; == TYPEID_PLAYER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&& sWorld->getIntConfig(CONFIG_DAMAGE_CHECKER_MAX_DAMAGE&#41; > 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&& damage >= sWorld->getIntConfig(CONFIG_DAMAGE_CHECKER_MAX_DAMAGE&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&& (uint8&#41;ToPlayer(&#41;->GetSession(&#41;->GetSecurity(&#41; < sWorld->getIntConfig(CONFIG_DAMAGE_CHECKER_IMMUNE_MIN_GM_LEVEL&#41;&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// punishment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32 banTime = sWorld->getIntConfig(CONFIG_DAMAGE_CHECKER_BAN_VALUE&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(banTime > 0&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sWorld->BanCharacter(ToPlayer(&#41;->GetName(&#41;, secsToTimeString(banTime, true&#41;.c_str(&#41;, "Maximal damage", "Damage Checker"&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sLog->outString("Damage Checker: Player name '%s', damage %u", ToPlayer(&#41;->GetName(&#41;, damage&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32 health = victim->GetHealth(&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sLog->outDetail("deal dmg:%d to health:%d ", damage, health&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> src/server/worldserver/worldserver.conf.dist |&nbsp;&nbsp;27 ++++++++++++++++++++++++++&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> 1 files changed, 27 insertions(+&#41;, 0 deletions(-&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> index 5d83710..9dae019 100644&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> --- a/src/server/worldserver/worldserver.conf.dist&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +++ b/src/server/worldserver/worldserver.conf.dist&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -25,6 +25,7 @@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> #&nbsp;&nbsp;&nbsp;&nbsp;CONSOLE AND REMOTE ACCESS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> #&nbsp;&nbsp;&nbsp;&nbsp;CHARACTER DELETE OPTIONS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> #&nbsp;&nbsp;&nbsp;&nbsp;CUSTOM SERVER OPTIONS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;DAMAGE CHECKER OPTIONS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> ###################################################################################################&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -2880,3 +2881,29 @@ PlayerDump.DisallowOverwrite = 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> ###################################################################################################&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +###################################################################################################&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +# DAMAGE CHECKER OPTIONS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;DamageChecker.MaxDamage&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maximum damage on the player.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default:&nbsp;&nbsp;&nbsp;&nbsp;0 - disable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +DamageChecker.MaxDamage = 50000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;DamageChecker.ImmuneMinGMLevel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The min level of GM, to obtain immunity from the detector.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default:&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +DamageChecker.ImmuneMinGMLevel = 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;DamageChecker.BanValue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ban-time for the character (in seconds&#41;. If the BanValue is 0 or less, then only get a log.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default:&nbsp;&nbsp;&nbsp;&nbsp;3600&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +DamageChecker.BanValue = 3600&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +###################################################################################################<!--/uzc--></div></div><!--/uzcode--> Патчи Dispeller /forum/15-1837-1 Нордскол с 68 лвла /forum/15-1836-1 Sun, 26 Aug 2012 17:33:22 GMT Форум: <a href="/forum/15">Патчи</a><br />Автор темы: Dispeller<br />Автор последнего сообщения: Dispeller<br />Количество ответов: 0 <!--uzcode--><div class="bbCodeBlock"><div class="bbCodeName" style="padding-left:5px;font-weight:bold;font-size:7pt">Code</div><div class="codeMessage" style="border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight<5?this.style.height:scrollHeight>200?'200px':''+(this.scrollHeight+5)+'px');"><!--uzc-->diff --git a/src/game/Player.cpp b/src/game/Player.cpp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> --- a/src/game/Player.cpp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +++ b/src/game/Player.cpp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -5917,6 +5917,16 @@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /> bool Player::SetPosition(float x, float y, float z, float orientation, bool teleport&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + if(GetMapId(&#41; == 571 && getLevel(&#41;<68&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;switch(GetTeam(&#41;&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + case ALLIANCE: TeleportTo(0, -8830.62f, 622.80f, 93.85f, 3.9f&#41;; break;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + case HORDE: TeleportTo(1, 1629.35f, -4373.39f, 31.26f, 3.5f&#41;; break;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> // prevent crash when a bad coord is sent by the client&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> if(!Trinity::IsValidMapCoord(x,y,z,orientation&#41;&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> { <!--/uzc--></div></div><!--/uzcode--> Патчи Dispeller /forum/15-1836-1 Scourge Strike /forum/15-1835-1 Sun, 26 Aug 2012 17:32:28 GMT Форум: <a href="/forum/15">Патчи</a><br />Автор темы: Dispeller<br />Автор последнего сообщения: Dispeller<br />Количество ответов: 0 <!--uzcode--><div class="bbCodeBlock"><div class="bbCodeName" style="padding-left:5px;font-weight:bold;font-size:7pt">Code</div><div class="codeMessage" style="border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight<5?this.style.height:scrollHeight>200?'200px':''+(this.scrollHeight+5)+'px');"><!--uzc--># HG changeset patch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> # User illusion&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> # Date 1325684790 -14400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> # Node ID 9ce8288cd717266c016c3315f62726b59837daba&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> # Parent&nbsp;&nbsp;b8d7bac2b8334e93908952809c1fc5a81ed0651e&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> NR_Add GetTakenDamage function.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> This function returned taken damage of hit unit(crit, armor, and etc&#41;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> Fix scourge strike, not fully fix.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /> diff -r b8d7bac2b833 -r 9ce8288cd717 src/server/game/Spells/Spell.cpp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> --- a/src/server/game/Spells/Spell.cpp&nbsp;&nbsp;&nbsp;&nbsp;Wed Jan 04 17:45:11 2012 +0400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +++ b/src/server/game/Spells/Spell.cpp&nbsp;&nbsp;&nbsp;&nbsp;Wed Jan 04 17:46:30 2012 +0400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -1335,10 +1335,10 @@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Add bonuses and fill damageInfo struct&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;caster->CalculateSpellDamageTaken(&damageInfo, m_damage, m_spellInfo, m_attackType,&nbsp;&nbsp;target->crit&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_taken_damage = damageInfo.damage;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;caster->DealDamageMods(damageInfo.target, damageInfo.damage, &damageInfo.absorb&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Send log damage message to client&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (missInfo == SPELL_MISS_REFLECT&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;damageInfo.attacker = unit;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;caster->SendSpellNonMeleeDamageLog(&damageInfo&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -1356,7 +1356,7 @@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;caster->DealSpellDamage(&damageInfo, true&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Haunt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (m_spellInfo->SpellFamilyName == SPELLFAMILY_WARLOCK && m_spellInfo->SpellFamilyFlags&#91;1] & 0x40000 && m_spellAura && m_spellAura->GetEffect(1&#41;&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> diff -r b8d7bac2b833 -r 9ce8288cd717 src/server/game/Spells/Spell.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> --- a/src/server/game/Spells/Spell.h&nbsp;&nbsp;&nbsp;&nbsp;Wed Jan 04 17:45:11 2012 +0400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +++ b/src/server/game/Spells/Spell.h&nbsp;&nbsp;&nbsp;&nbsp;Wed Jan 04 17:46:30 2012 +0400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -549,8 +549,9 @@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GameObject* focusObject;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Damage and healing in effects need just calculate&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int32 m_damage;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Damge&nbsp;&nbsp;&nbsp;in effects count here&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int32 m_damage;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Damage&nbsp;&nbsp;in effects count here&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int32 m_healing;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Healing in effects count here&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int32 m_taken_damage;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Damage&nbsp;&nbsp;in effects count here (after armor and resist&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// ******************************************&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Spell trigger system&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> diff -r b8d7bac2b833 -r 9ce8288cd717 src/server/game/Spells/SpellScript.cpp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> --- a/src/server/game/Spells/SpellScript.cpp&nbsp;&nbsp;&nbsp;&nbsp;Wed Jan 04 17:45:11 2012 +0400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +++ b/src/server/game/Spells/SpellScript.cpp&nbsp;&nbsp;&nbsp;&nbsp;Wed Jan 04 17:46:30 2012 +0400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -398,6 +398,16 @@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return m_spell->m_damage;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +int32 SpellScript::GetTakenDamage(&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;if (!IsInAfterHitPhase(&#41;&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sLog->outError("TSCR: Script: `%s` Spell: `%u`: function SpellScript::GetTakenDamage was called while spell not in after-hit phase!", m_scriptName, m_scriptSpellId&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return NULL;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;return m_spell->m_taken_damage;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void SpellScript::SetHitDamage(int32 damage&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!IsInTargetHook(&#41;&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> diff -r b8d7bac2b833 -r 9ce8288cd717 src/server/game/Spells/SpellScript.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> --- a/src/server/game/Spells/SpellScript.h&nbsp;&nbsp;&nbsp;&nbsp;Wed Jan 04 17:45:11 2012 +0400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +++ b/src/server/game/Spells/SpellScript.h&nbsp;&nbsp;&nbsp;&nbsp;Wed Jan 04 17:46:30 2012 +0400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -212,6 +212,7 @@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bool IsInTargetHook(&#41; const;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bool IsInHitPhase(&#41; const;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bool IsInEffectHook(&#41; const;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bool IsInAfterHitPhase(&#41; const { return (m_currentScriptState == SPELL_SCRIPT_HOOK_AFTER_HIT&#41;; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Spell* m_spell;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint8 m_hitPreventEffectMask;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -302,6 +303,8 @@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int32 GetHitDamage(&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void SetHitDamage(int32 damage&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void PreventHitDamage(&#41; { SetHitDamage(0&#41;; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// returns total damage of a spell (crit comprensive&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int32 GetTakenDamage(&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// setter/getter for for heal done by spell to target of spell hit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// returns healing calculated before hit, and real dmg done after hit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int32 GetHitHeal(&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> diff -r b8d7bac2b833 -r 9ce8288cd717 src/server/scripts/Spells/spell_dk.cpp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> --- a/src/server/scripts/Spells/spell_dk.cpp&nbsp;&nbsp;&nbsp;&nbsp;Wed Jan 04 17:45:11 2012 +0400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +++ b/src/server/scripts/Spells/spell_dk.cpp&nbsp;&nbsp;&nbsp;&nbsp;Wed Jan 04 17:46:30 2012 +0400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -375,6 +375,11 @@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class spell_dk_scourge_strike_SpellScript : public SpellScript&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrepareSpellScript(spell_dk_scourge_strike_SpellScript&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float m_multip;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spell_dk_scourge_strike_SpellScript(&#41; : m_multip(0.0f&#41; { }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bool Validate(SpellInfo const* /*spellEntry*/&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -387,8 +392,15 @@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unit* caster = GetCaster(&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (Unit* unitTarget = GetHitUnit(&#41;&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_multip = GetEffectValue(&#41; * unitTarget->GetDiseasesByCaster(caster->GetGUID(&#41;&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void HandleAfterHit(&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unit* caster = GetCaster(&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (Unit* unitTarget = GetHitUnit(&#41;&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int32 bp = CalculatePctN(GetHitDamage(&#41;, GetEffectValue(&#41; * unitTarget->GetDiseasesByCaster(caster->GetGUID(&#41;&#41;&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int32 bp = CalculatePctN(GetTakenDamage(&#41;, m_multip&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;caster->CastCustomSpell(unitTarget, DK_SPELL_SCOURGE_STRIKE_TRIGGERED, &bp, NULL, NULL, true&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -396,6 +408,7 @@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void Register(&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OnEffectHitTarget += SpellEffectFn(spell_dk_scourge_strike_SpellScript::HandleDummy, EFFECT_2, SPELL_EFFECT_DUMMY&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AfterHit += SpellHitFn(spell_dk_scourge_strike_SpellScript::HandleAfterHit&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}; <!--/uzc--></div></div><!--/uzcode--> Патчи Dispeller /forum/15-1835-1 Госсипы Мобов /forum/15-1834-1 Sun, 26 Aug 2012 17:31:41 GMT Форум: <a href="/forum/15">Патчи</a><br />Описание темы: C++<br />Автор темы: Dispeller<br />Автор последнего сообщения: Dispeller<br />Количество ответов: 0 <!--uzcode--><div class="bbCodeBlock"><div class="bbCodeName" style="padding-left:5px;font-weight:bold;font-size:7pt">Code</div><div class="codeMessage" style="border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight<5?this.style.height:scrollHeight>200?'200px':''+(this.scrollHeight+5)+'px');"><!--uzc-->player->CastSpell(player, Ид спелла, true&#41;; - Нпц кастует на вас спелл <br /> player->TeleportTo(Мапа, По иксуf, по игрикуf, по зетf, ориентацияf&#41;; - Телепортирует игрока <br /> player->ModifyMoney(в медях&#41;; - Даёт игроку бабки <br /> player->ModifyMoney(-в медях&#41;; - Отнимает бабки <br /> player->GiveXP(Количество опыта, NULL&#41;; - Даёт определённое количество опыта <br /> player->ModifyArenaPoints(сколько Арены пойнта&#41;; Даёт арены пойнты "Если поставить минут отнимает" <br /> player->ModifyHonorPoints(сколько хонор пойнта&#41;; Даёт Хонор пойнты "Если поставить минут отнимает" <br /> player->SetAtLoginFlag(AT_LOGIN_RENAME&#41;; - ренейм <br /> player->SetAtLoginFlag(AT_LOGIN_CUSTOMIZE&#41;; - Смена внешности <br /> player->SetAtLoginFlag(AT_LOGIN_CHANGE_FACTION&#41;; - Изменяет фракцию <br /> player->SetAtLoginFlag(AT_LOGIN_CHANGE_RACE&#41;; - Изменяет рассу <br /> player->RemoveAurasDueToSpell(Ид спелла,0&#41;; - Снимает эффект Спелла <br /> player->SetHealth(pPlayer->GetMaxHealth(&#41;&#41;; - Даёт максимум Хп <br /> player->SetDisplayId(Ид морпа&#41;; - Накладывает на игрока морп <br /> player->DestroyItemCount(Ид предмета, Сколько предметов, true&#41;; - Удаляет у игрока кол-во предметов <br /> player->learnSpell(Ид спелла, true&#41;; - выучивает ид спелла <br /> if (player->GetMoney(&#41;< Сколько монет&#41; - Проверка на деньги <br /> if (player->GetItemCount(ид итема&#41; < кол-во&#41; - проверка на итем <br /> if (player->getLevel(&#41; >= какой лвл&#41; - Проверка на уровень <br /> if (player->GetArenaPoints(&#41;< кол-во&#41; - Проверка на арена пойнты <br /> if (player->GetHonorPoints(&#41;< кол-во&#41; - Проверка на хонор опйнты <br /> player->GiveLevel(Лвл&#41;; - Изменяет лвл<!--/uzc--></div></div><!--/uzcode--> Патчи Dispeller /forum/15-1834-1 gm_helloy /forum/15-1833-1 Sun, 26 Aug 2012 17:30:57 GMT Форум: <a href="/forum/15">Патчи</a><br />Автор темы: Dispeller<br />Автор последнего сообщения: Dispeller<br />Количество ответов: 0 <!--uzcode--><div class="bbCodeBlock"><div class="bbCodeName" style="padding-left:5px;font-weight:bold;font-size:7pt">Code</div><div class="codeMessage" style="border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight<5?this.style.height:scrollHeight>200?'200px':''+(this.scrollHeight+5)+'px');"><!--uzc-->#include "ScriptPCH.h"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> #include "AccountMgr.h"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> #include "Config.h"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /> class gm_hello : public PlayerScript&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> public:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> gm_hello(&#41; : PlayerScript("gm_hello"&#41; {}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /> void OnLogin(Player* player&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> if (sWorld->getBoolConfig(CONFIG_GM_SETTINGS_ON_INPUT&#41;&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> if (player->GetSession(&#41;->GetSecurity(&#41; == SEC_MODERATOR&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> std::string sText = ("Модератор '|cFF60FF00" + std::string(player->GetSession(&#41;->GetPlayerName(&#41;&#41; + "|r' входит в Игровой мир."&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> sWorld->SendServerMessage(SERVER_MSG_STRING, sText.c_str(&#41;&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> if (player->GetSession(&#41;->GetSecurity(&#41; == SEC_EVENTER&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> std::string sText = ("Эвент-мастер '|cFF60FF00" + std::string(player->GetSession(&#41;->GetPlayerName(&#41;&#41; + "|r' входит в Игровой мир."&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> sWorld->SendServerMessage(SERVER_MSG_STRING, sText.c_str(&#41;&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> if (player->GetSession(&#41;->GetSecurity(&#41; == SEC_GAMEMASTER&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> std::string sText = ("Гейм-мастер '|cFF60FF00" + std::string(player->GetSession(&#41;->GetPlayerName(&#41;&#41; + "|r' входит в Игровой мир."&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> sWorld->SendServerMessage(SERVER_MSG_STRING, sText.c_str(&#41;&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> if (player->GetSession(&#41;->GetSecurity(&#41; == SEC_DEVELOPER&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> std::string sText = ("Разработчик Проэкта '|cFF60FF00" + std::string(player->GetSession(&#41;->GetPlayerName(&#41;&#41; + "|r' входит в Игровой мир."&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> sWorld->SendServerMessage(SERVER_MSG_STRING, sText.c_str(&#41;&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> if (player->GetSession(&#41;->GetSecurity(&#41; == SEC_ADMINISTRATOR&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> std::string sText = ("Куратор Проэкта '|cFF60FF00" + std::string(player->GetSession(&#41;->GetPlayerName(&#41;&#41; + "|r' входит в Игровой мир."&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> sWorld->SendServerMessage(SERVER_MSG_STRING, sText.c_str(&#41;&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /> void OnLogout(Player* player&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> if (sWorld->getBoolConfig(CONFIG_GM_SETTINGS_ON_EXIT&#41;&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> if (player->GetSession(&#41;->GetSecurity(&#41; == SEC_MODERATOR&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> std::string sText = ("Модератор '|cFF60FF00" + std::string(player->GetSession(&#41;->GetPlayerName(&#41;&#41; + "|r' выходит из Игрового мира."&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> sWorld->SendServerMessage(SERVER_MSG_STRING, sText.c_str(&#41;&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> if (player->GetSession(&#41;->GetSecurity(&#41; == SEC_EVENTER&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> std::string sText = ("Эвент-мастер '|cFF60FF00" + std::string(player->GetSession(&#41;->GetPlayerName(&#41;&#41; + "|r' выходит из Игрового мира."&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> sWorld->SendServerMessage(SERVER_MSG_STRING, sText.c_str(&#41;&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> if (player->GetSession(&#41;->GetSecurity(&#41; == SEC_GAMEMASTER&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> std::string sText = ("Гейм-мастер '|cFF60FF00" + std::string(player->GetSession(&#41;->GetPlayerName(&#41;&#41; + "|r' выходит из Игрового мира."&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> sWorld->SendServerMessage(SERVER_MSG_STRING, sText.c_str(&#41;&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> if (player->GetSession(&#41;->GetSecurity(&#41; == SEC_DEVELOPER&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> std::string sText = ("Разработчик Проэкта '|cFF60FF00" + std::string(player->GetSession(&#41;->GetPlayerName(&#41;&#41; + "|r' выходит из Игрового мира."&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> sWorld->SendServerMessage(SERVER_MSG_STRING, sText.c_str(&#41;&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> if (player->GetSession(&#41;->GetSecurity(&#41; == SEC_ADMINISTRATOR&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> std::string sText = ("Куратор Проэкта '|cFF60FF00" + std::string(player->GetSession(&#41;->GetPlayerName(&#41;&#41; + "|r' выходит из Игрового мира."&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> sWorld->SendServerMessage(SERVER_MSG_STRING, sText.c_str(&#41;&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> };&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /> void AddSC_gm_hello(&#41;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> new gm_hello(&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> }<!--/uzc--></div></div><!--/uzcode--> Патчи Dispeller /forum/15-1833-1