Главная | Форум | Статьи | Фaйлы| Картинки WoW | Профиль | Регистрация | Вход

[ Новые сообщения · Правила форума · Поиск · RSS ]

WoW-Info — информационный World of Warcraft портал

Патчи Для вашего Фан Сервера - Форум

  • Сторінка 1 з 1
  • 1
Патчи Для вашего Фан Сервера
DarkensandДата: Понеділок, 14.03.2011, 15:14 | Сообщение # 1



Darkensand
Главный Админ
Лучший из лучших
Группа: Администратор
Сообщений: 8083



Оффлайн
ПвП Токен система

Code
diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in    
index 0bb942e..339b5a1 100644    
--- a/src/mangosd/mangosd.conf.dist.in    
+++ b/src/mangosd/mangosd.conf.dist.in    
@@ -1375,3 +1375,33 @@ Ra.IP = 0.0.0.0    
      Ra.Port = 3443    
      Ra.MinLevel = 3    
      Ra.Secure = 1    
+    
+####################################################################################################################    
+# PvP Token System    
+#    
+#    PvPToken.Enable    
+#         Enable/disable PvP Token system.    
+#         Default: 1 (enabled)    
+#                  0 (disabled)    
+#    
+#    PvPToken.ItemID    
+#         The item ID of the token that players will receive after killing an enemy.    
+#         Default: 29434 (Badge of Justice)    
+#    
+#    PvPToken.ItemCount    
+#         The count amount of the ItemID    
+#         Default: 1    
+#    
+#    PvPToken.MapRestriction    
+#         The type of maps where players can receive the token    
+#         Default: 4 - all maps    
+#                  3 - battlegrounds only    
+#                  2 - FFA areas only (both instanced and world arenas)    
+#                  1 - battlegrounds and FFA areas only    
+#    
+###################################################################################################################    
+    
+ PvPToken  .Enable = 0    
+PvPToken.ItemID = 29434    
+PvPToken.ItemCount = 1    
+PvPToken.MapRestriction = 4    
diff --git a/src/game/Language.h b/src/game/Language.h    
index 823d6d5..938755b 100644    
--- a/src/game/Language.h    
+++ b/src/game/Language.h    
@@ -848,7 +848,7 @@ enum MangosStrings    
          //                    10000-10999    
           
          // Use for custom patches             11000-11999    
-    
+  LANG_YOU_RECEIVE_TOKEN              = 11050,    
          // NOT RESERVED IDS                   12000-1999999999    
          // `db_script_string` table index     2000000000-2000009999 (MIN_DB_SCRIPT_STRING_ID-MAX_DB_SCRIPT_STRING_ID)    
          // For other tables maybe             2000010000-2147483647 (max index)    
diff --git a/src/game/Player.cpp b/src/game/Player.cpp    
index 65c6ac0..34535df 100644    
--- a/src/game/Player.cpp    
+++ b/src/game/Player.cpp    
@@ -21017,6 +21017,35 @@ void Player::ResummonPetTemporaryUnSummonedIfAny()    
          m_temporaryUnsummonedPetNumber = 0;    
      }    
           
+void Player::ReceiveToken()    
+{    
+    if(!sWorld.getConfig(CONFIG_PVP_TOKEN_ENABLE))    
+        return;    
+    
+    uint8 MapRestriction = sWorld.getConfig(CONFIG_PVP_TOKEN_RESTRICTION);    
+    
+    if( MapRestriction == 1 && !InBattleGround() && !HasByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP) ||    
+        MapRestriction == 2 && !HasByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP) ||    
+        MapRestriction == 3 && !InBattleGround())    
+        return;    
+    
+    uint32 itemID = sWorld.getConfig(CONFIG_PVP_TOKEN_ITEMID);    
+    uint32 itemCount = sWorld.getConfig(CONFIG_PVP_TOKEN_ITEMCOUNT);    
+    
+    ItemPosCountVec dest;    
+    uint8 msg = CanStoreNewItem( NULL_BAG, NULL_SLOT, dest, itemID, itemCount);    
+    if( msg != EQUIP_ERR_OK )   // convert to possible store amount    
+    {    
+        SendEquipError( msg, NULL, NULL );    
+        return;    
+    }    
+    
+    Item* item = StoreNewItem( dest, itemID, true, Item::GenerateItemRandomPropertyId(itemID));    
+    SendNewItem(item,itemCount,true,false);    
+    
+    ChatHandler(this).PSendSysMessage(LANG_YOU_RECEIVE_TOKEN);    
+}    
+    
      bool Player::canSeeSpellClickOn(Creature const *c) const    
      {    
          if(!c->HasFlag(UNIT_NPC_FLAGS,UNIT_NPC_FLAG_SPELLCLICK))    
diff --git a/src/game/Player.h b/src/game/Player.h    
index a1ea792..158da81 100644    
--- a/src/game/Player.h    
+++ b/src/game/Player.h    
@@ -1950,7 +1950,9 @@ class MANGOS_DLL_SPEC Player : public Unit    
              void ModifyHonorPoints( int32 value );    
              void ModifyArenaPoints( int32 value );    
              uint32 GetMaxPersonalArenaRatingRequirement();    
-    
+       
+        void ReceiveToken();    
+       
              //End of PvP System    
           
              void SetDrunkValue(uint16 newDrunkValue, uint32 itemid=0);    
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp    
index 06d1533..98af84b 100644    
--- a/src/game/Unit.cpp    
+++ b/src/game/Unit.cpp    
@@ -580,6 +580,11 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa    
                  player->RewardPlayerAndGroupAtKill(pVictim);    
                  player->ProcDamageAndSpell(pVictim, PROC_FLAG_KILL, PROC_FLAG_KILLED, PROC_EX_NONE, 0);    
           
+   // PvP Token    
+   int8 leveldiff = player->getLevel() - pVictim->getLevel();    
+   if(!pVictim->HasAuraType(SPELL_AURA_NO_PVP_CREDIT) && leveldiff < 10)    
+   player->ReceiveToken();    
+        
                  WorldPacket data(SMSG_PARTYKILLLOG, (8+8)); //send event PARTY_KILL    
                  data << uint64(player->GetGUID()); //player with killing blow    
                  data << uint64(pVictim->GetGUID()); //victim    
diff --git a/src/game/World.cpp b/src/game/World.cpp    
index 3361b5e..c9a4ffb 100644    
--- a/src/game/World.cpp    
+++ b/src/game/World.cpp    
@@ -954,6 +954,15 @@ void World::LoadConfigSettings(bool reload)    
           
          m_configs[CONFIG_THREAT_RADIUS] = sConfig.GetIntDefault("ThreatRadius", 100);    
           
+     /* PvP Token System */    
+    m_configs[CONFIG_PVP_TOKEN_ENABLE] = sConfig.GetBoolDefault("PvPToken.Enable", true);    
+    m_configs[CONFIG_PVP_TOKEN_ITEMID] = sConfig.GetIntDefault("PvPToken.ItemID", 29434);    
+    m_configs[CONFIG_PVP_TOKEN_ITEMCOUNT] = sConfig.GetIntDefault("PvPToken.ItemCount", 1);    
+    m_configs[CONFIG_PVP_TOKEN_RESTRICTION] = sConfig.GetIntDefault("PvPToken.MapRestriction", 4);    
+    
+    if(m_configs[CONFIG_PVP_TOKEN_ITEMCOUNT] <= 0)    
+        m_configs[CONFIG_PVP_TOKEN_ENABLE] = 0;    
+    
          // always use declined names in the russian client    
          m_configs[CONFIG_DECLINED_NAMES_USED] =    
              (m_configs[CONFIG_REALM_ZONE] == REALM_ZONE_RUSSIAN) ? true : sConfig.GetBoolDefault("DeclinedNames", false);    
diff --git a/src/game/World.h b/src/game/World.h    
index 977a440..f67cd72 100644    
--- a/src/game/World.h    
+++ b/src/game/World.h    
@@ -199,6 +199,10 @@ enum WorldConfigs    
          CONFIG_LISTEN_RANGE_SAY,    
          CONFIG_LISTEN_RANGE_TEXTEMOTE,    
          CONFIG_LISTEN_RANGE_YELL,    
+    CONF IG_PVP_TOKEN_E NABLE,    
+    CONFIG_PVP_TOKEN_ITEMID,    
+    CONFIG_PVP_TOKEN_ITEMCOUNT,    
+    CONFIG_PVP_TOKEN_RESTRIC TION,    
          CONFIG_SKILL_MILLING,    
          CONFIG_BATTLEGROUND_CAST_DESERTER,    
          CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE,    
- -      
1.6.3 .3

Сброс Кд, востановление хп и манны

Code
diff --git a/src/game/DuelHandler.cpp b/src/game/DuelHandler.cpp  
index a73be6f..0b82b4b 100644  
--- a/src/game/DuelHandler.cpp  
+++ b/src/game/DuelHandler.cpp  
@@ -48,6 +48,14 @@ void WorldSession::HandleDuelAcceptedOpcode(WorldPacket& recvPacket)  
        time_t now = time(NULL);  
        pl->duel->startTimer = now;  
        plTarget->duel->startTimer = now;  
+    
+   // reset cooldowns and HP/Mana    
+   pl->SetHealth(pl->GetMaxHealth());    
+   plTarget->SetHealth(plTarget->GetMaxHealth());    
+  
+   if (pl->getPowerType() == POWER_MANA) pl->SetPower(POWER_MANA, pl->GetMaxPower(POWER_MANA));    
+   if (plTarget->getPowerType() == POWER_MANA) plTarget->SetPower(POWER_MANA, plTarget->GetMaxPower(POWER_MANA));    
+   if (!pl->GetMap()->IsDungeon()) { pl->RemoveArenaSpellCooldowns(); plTarget->RemoveArenaSpellCooldowns(); }  
       
        pl->SendDuelCountdown(3000);  
        plTarget->SendDuelCountdown(3000);  
--    
1.6.5.1.1367.gcd48

ПК Анонсер

Code
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp  
index 8b91327..75e35b3 100644  
--- a/src/game/Unit.cpp  
+++ b/src/game/Unit.cpp  
@@ -579,6 +579,12 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa  
            {  
                player->RewardPlayerAndGroupAtKill(pVictim);  
                player->ProcDamageAndSpell(pVictim, PROC_FLAG_KILL, PROC_FLAG_KILLED, PROC_EX_NONE, 0);  
+      
+   //PK Announce System  
+   if (pVictim->GetTypeId() == TYPEID_PLAYER)  
+           {  
+          sWorld.SendPvPAnnounce(player, ((Player*)pVictim));  
+           }  
       
       // PvP Token  
       int8 leveldiff = player->getLevel() - pVictim->getLevel();  
diff --git a/src/game/World.cpp b/src/game/World.cpp  
index b01a31e..1949aaa 100644  
--- a/src/game/World.cpp  
+++ b/src/game/World.cpp  
@@ -62,6 +62,7 @@  
    #include "WaypointManager.h"  
    #include "GMTicketMgr.h"  
    #include "Util.h"  
+#include "Language.h"  
       
    INSTANTIATE_SINGLETON_1( World );  
       
@@ -2224,3 +2225,16 @@ void World::LoadDBVersion()  
        if(m_CreatureEventAIVersion.empty())  
            m_CreatureEventAIVersion = "Unknown creature EventAI.";  
    }  
+  
+void World::SendPvPAnnounce(Player* killer, Player* killed)  
+{  
+    std::ostringstream msg;  
+    std::ostringstream KillerName;  
+    std::ostringstream KilledName;  
+  
+    KillerName << killer->GetName();  
+    KilledName << killed->GetName();  
+  
+    msg << "[" << KillerName.str().c_str() << "]" << " just made a corpse out of " << "[" << KilledName.str().c_str() << "]" << " in " << "[" << killer->GetBaseMap()->GetMapName() << "]";  
+    SendWorldText(LANG_SYSTEMMESSAGE, msg.str().c_str());  
+}  

diff --git a/src/game/World.h b/src/game/World.h  
index 9df65d3..8b9b306 100644  
--- a/src/game/World.h  
+++ b/src/game/World.h  
@@ -496,6 +496,7 @@ class World  
            bool IsFFAPvPRealm() { return getConfig(CONFIG_GAME_TYPE) == REALM_TYPE_FFA_PVP; }  
       
            void KickAll();  
+  void SendPvPAnnounce(Player* killer, Player* killed);  
            void KickAllLess(AccountTypes sec);  
            BanReturn BanAccount(BanMode mode, std::string nameOrIP, std::string duration, std::string reason, std::string author);  
            bool RemoveBanAccount(BanMode mode, std::string nameOrIP);  
--   
 
[FaNaT1K]Дата: Понеділок, 21.03.2011, 16:41 | Сообщение # 2



[FaNaT1K]
Fan Guf_ZM Nation™
Командир
Группа: V.I.P
Сообщений: 638

Замечания:

Оффлайн
Quote (HeisenBeRG)
ПвП Токен система

как настроить чтоб за пвп давали итем который я хочу?



Мечтаете о собственном проекте?!
 
NarkohealДата: Неділя, 31.07.2011, 23:05 | Сообщение # 3



Narkoheal
Скаут
Группа: Пользователи
Сообщений: 15

Замечания:

Оффлайн
Это давно все переписывать нужно. Большая часть функций 10 раз устарела. FallenangelXI переписал пвп токен и ПК аннонс систем.
 
  • Сторінка 1 з 1
  • 1
Пошук:

Новые сообщения в темах
Сдам в аренду сервер и хостинг · (Хост Предложения)
Автор: redlaine
Последнее сообщение в 23:53
хаха :D · (Приколы)
Автор: [N1ke]Medved
Последнее сообщение в 18:40
Autobattle - новый боевой бот ... · (Боты для WoW)
Автор: terrikon
Последнее сообщение в 18:39
PvE руководство для Чернокнижн... · (Чернокнижник)
Автор: Darkensand
Последнее сообщение в 18:38
Пустой свиток (Часть 11) · (Истории WoW)
Автор: R_a_Z_o_R
Последнее сообщение в 18:37
Друиды в Катаклизме: Официальн... · (Друид)
Автор: Darkensand
Последнее сообщение в 18:37
[Баг 3.3.5] Фарм ледяных бадже... · (Читы для WoW)
Автор: Darkensand
Последнее сообщение в 18:35
FarmBot (Бот для фарма руды и ... · (Боты для WoW)
Автор: homma
Последнее сообщение в 18:34
Почему мы сражаемся: ролевая и... · (Воин)
Автор: Darkensand
Последнее сообщение в 18:34
Книги по Wold of Warcraft · (Истории WoW)
Автор: R_a_Z_o_R
Последнее сообщение в 18:33
Маг огня в Cataclysm · (Маг)
Автор: Darkensand
Последнее сообщение в 18:33
Как начать играть в World of W... · (Полезно знать)
Автор: Belkmondesh
Последнее сообщение в 18:32
Характеризация профессий · (Профессии)
Автор: Darkensand
Последнее сообщение в 18:31
Что значит для арканов бета те... · (Маг)
Автор: Darkensand
Последнее сообщение в 18:31

Контакты Контакты Copyright WoW-Info — World of Warcraft портал © 2025 | Условия и правила использования ресурса | Реклама / Услуги
WoW-Info портал.World of Warcraft портал — готовые сервера, сайты, картинки, аддоны, патчи, читы, баги, mangos, ArcEmu, TrinityCore, Warcraft 3, новости, Cataclysm...
Яндекс.Метрика Хостинг від uCoz