• Страница 1 из 1
  • 1
Архив - только для чтения
Модератор форума: andycrowz  
PvP Token System
САХАЛИН
Центурион
Вот наконец таки нашёл патч который валялся прям под носом:
Code
From d86442c181cadc3a1e02b990015d914f20aeb6ae Mon Sep 17 00:00:00 2001
From: Furt <lit_69@hotmail.com>
Date: Mon, 14 Jun 2010 07:34:18 -0500
Subject: [PATCH] PVP Token Patch With Gold Reward Added

---
  src/game/Language.h             |    1 +
  src/game/Player.cpp              |   37 +++++++++++++++++++++++++++++++++++++
  src/game/Player.h                |    3 +++
  src/game/Unit.cpp                |    5 +++++
  src/game/World.cpp               |   10 ++++++++++
  src/game/World.h                 |   10 +++++++++-
  src/mangosd/mangosd.conf.dist.in |   35 +++++++++++++++++++++++++++++++++++
  7 files changed, 100 insertions(+), 1 deletions(-)

diff --git a/src/game/Language.h b/src/game/Language.h
index 38ec346..4f8e6a9 100644
--- a/src/game/Language.h
+++ b/src/game/Language.h
@@ -851,6 +851,7 @@ enum MangosStrings
   
      // Use for not-in-offcial-sources patches
      //                    10000-10999
+    LANG_YOU_RECEIVE_TOKEN          = 11050,
   
      // Use for custom patches             11000-11999
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index 106fdb4..d40d80a 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -21449,6 +21449,43 @@ void Player::UpdateFallInformationIfNeed( MovementInfo const& minfo,uint16 opcod
          SetFallInformation(minfo.GetFallTime(), minfo.GetPos()->z);
  }
   
+///PVP Token
+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);
+    uint32 goldAmount = sWorld.getConfig(CONFIG_PVP_TOKEN_GOLD);
+
+    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);
+
+    if( goldAmount > 0 )
+        ModifyMoney(goldAmount);
+        SaveGoldToDB();
+        return;
+
+    ChatHandler(this).PSendSysMessage(LANG_YOU_RECEIVE_TOKEN);
+}
+
+
  void Player::UnsummonPetTemporaryIfAny()
  {
      Pet* pet = GetPet();
diff --git a/src/game/Player.h b/src/game/Player.h
index 544e7e1..6801a77 100644
--- a/src/game/Player.h
+++ b/src/game/Player.h
@@ -2019,6 +2019,9 @@ class MANGOS_DLL_SPEC Player : public Unit
          void _ApplyWeaponDependentAuraMods(Item *item, WeaponAttackType attackType, bool apply);
          void _ApplyWeaponDependentAuraCritMod(Item *item, WeaponAttackType attackType, Aura* aura, bool apply);
          void _ApplyWeaponDependentAuraDamageMod(Item *item, WeaponAttackType attackType, Aura* aura, bool apply);
+         
+        ///PVP Token
+        void ReceiveToken();
   
          void _ApplyItemMods(Item *item,uint8 slot,bool apply);
          void _RemoveAllItemMods();
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index d0c82d8..91d3919 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -697,6 +697,11 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa
          if(player_tap && player_tap != pVictim)
          {
              player_tap->ProcDamageAndSpell(pVictim, PROC_FLAG_KILL, PROC_FLAG_KILLED, PROC_EX_NONE, 0);
+             
+            /// PvP Token
+            int8 leveldiff = player_tap->getLevel() - pVictim->getLevel();
+            if((pVictim->GetTypeId() == TYPEID_PLAYER) && leveldiff < 10)
+            player_tap->ReceiveToken();
   
              WorldPacket data(SMSG_PARTYKILLLOG, (8+8));     //send event PARTY_KILL
              data << player_tap->GetObjectGuid();            //player with killing blow
diff --git a/src/game/World.cpp b/src/game/World.cpp
index abf273d..034178a 100644
--- a/src/game/World.cpp
+++ b/src/game/World.cpp
@@ -755,6 +755,16 @@ void World::LoadConfigSettings(bool reload)
      setConfig(CONFIG_UINT32_TIMERBAR_BREATH_MAX,      "TimerBar.Breath.Max", 180);
      setConfig(CONFIG_UINT32_TIMERBAR_FIRE_GMLEVEL,    "TimerBar.Fire.GMLevel", SEC_CONSOLE);
      setConfig(CONFIG_UINT32_TIMERBAR_FIRE_MAX,        "TimerBar.Fire.Max", 1);
+     
+    /* PvP Token System */
+    setConfig(CONFIG_PVP_TOKEN_ENABLE,"PvPToken.Enable", true);
+    setConfig(CONFIG_PVP_TOKEN_ITEMID,"PvPToken.ItemID", 29434);
+    setConfig(CONFIG_PVP_TOKEN_ITEMCOUNT,"PvPToken.ItemCount", 1);
+    setConfig(CONFIG_PVP_TOKEN_GOLD,"PvPToken.Gold", 100000);
+    setConfig(CONFIG_PVP_TOKEN_RESTRICTION,"PvPToken.MapRestriction", 4);
+
+    if(getConfig(CONFIG_PVP_TOKEN_ITEMCOUNT) < 1)
+    setConfig(CONFIG_PVP_TOKEN_ITEMCOUNT,"PvPToken.ItemCount",1);
   
      m_VisibleUnitGreyDistance = sConfig.GetFloatDefault("Visibility.Distance.Grey.Unit", 1);
      if(m_VisibleUnitGreyDistance >  MAX_VISIBILITY_DISTANCE)
diff --git a/src/game/World.h b/src/game/World.h
index b289b91..31ee893 100644
--- a/src/game/World.h
+++ b/src/game/World.h
@@ -260,7 +260,15 @@ enum eConfigFloatValues
      CONFIG_FLOAT_CREATURE_FAMILY_ASSISTANCE_RADIUS,
      CONFIG_FLOAT_GROUP_XP_DISTANCE,
      CONFIG_FLOAT_THREAT_RADIUS,
-    CONFIG_FLOAT_VALUE_COUNT
+    CONFIG_FLOAT_VALUE_COUNT,
+     
+    ///PVP Token
+    CONFIG_PVP_TOKEN_ENABLE,
+    CONFIG_PVP_TOKEN_ITEMID,
+    CONFIG_PVP_TOKEN_ITEMCOUNT,
+    CONFIG_PVP_TOKEN_GOLD,
+    CONFIG_PVP_TOKEN_RESTRICTION
+
  };
   
  /// Configuration elements
diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in
index f5ba807..390c66c 100644
--- a/src/mangosd/mangosd.conf.dist.in
+++ b/src/mangosd/mangosd.conf.dist.in
@@ -1519,3 +1519,38 @@ SOAP.Port = 7878
  CharDelete.Method = 0
  CharDelete.MinLevel = 0
  CharDelete.KeepDays = 30
+
+###################################################################################################################
+# PvP Token System (custom patch)
+#
+#   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.Gold
+#       The amount of gold that players will receive after killing an enemy.
+#       Default: 100000
+#
+#   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 = 1
+PvPToken.ItemID = 29434
+PvPToken.ItemCount = 1
+PvPToken.Gold = 100000
+PvPToken.MapRestriction = 4
--

Взято с getmangos.com



Ой ща по саням дам !
http://wow.grin.by
Сообщение # 1 отредактировано САХАЛИН - Суббота, 11.09.2010, 19:48
AlO
Маршал
САХАЛИН, а чем тебе вариант lanc'a не угадил? по мне так вроди бы рабочий вариант... скомпилилось без проблем, конечно на работоспособность не проверял... но все же мне кажется должно работать
Сообщение # 2 написано 05.09.2010 в 19:39
САХАЛИН
Центурион
Не хочет компилится, буду пробовать, но не кормпилилось писало ошибку в строке int8 leveldiff = player_tap->getLevel() - pVictim->getLevel(); незнаю чё делать.


Ой ща по саням дам !
http://wow.grin.by
Сообщение # 3 написано 06.09.2010 в 17:09
lanc
The Hurt Locker
САХАЛИН, какую ошибку ?
Сообщение # 4 написано 06.09.2010 в 19:29
САХАЛИН
Центурион
Позже отпишу, ща пока на машинке мама здохла, починят напишу.


Ой ща по саням дам !
http://wow.grin.by
Сообщение # 5 написано 07.09.2010 в 02:49
AlO
Маршал
САХАЛИН, странно странно, у меня компилилось без проблем...
Сообщение # 6 написано 10.09.2010 в 18:25
САХАЛИН
Центурион
А у меня как обычно какие-то проблемы, а можешь сваю версию кинуть патча посматрю, мб я не так делаю прост.


Ой ща по саням дам !
http://wow.grin.by
Сообщение # 7 написано 11.09.2010 в 00:30
No-One
Влюблённый идиот
САХАЛИН, под орегон (2.4.3) подойдёт?
Сообщение # 8 написано 25.09.2010 в 04:30
keonji
I ♥ S-PB
САХАЛИН, Лансовский компилится no problem
Сообщение # 9 написано 25.09.2010 в 15:24
САХАЛИН
Центурион
keonji, я не знаю где он, мне и тот, что в первом посте с getmangos.com нравится больш, он не lanc`овский зато компилится кул.


Ой ща по саням дам !
http://wow.grin.by
Сообщение # 10 написано 25.09.2010 в 16:05
No-One
Влюблённый идиот
САХАЛИН, я жду ответа smile
Сообщение # 11 написано 25.09.2010 в 16:28
САХАЛИН
Центурион
Этот вроде под 2.4.3

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,  
+    CONFIG_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


Ой ща по саням дам !
http://wow.grin.by
Сообщение # 12 написано 26.09.2010 в 02:38
No-One
Влюблённый идиот
САХАЛИН, я сам уже разобрался)
лови +
Сообщение # 13 написано 26.09.2010 в 03:19
САХАЛИН
Центурион
Кста, в данный момент не хватает хонора на всех пиратках я думаю, так вот патч который в 1 посте можно ещё подкоректировать, чтоб вместо голда давало определённое количество хонора:

Code
From d86442c181cadc3a1e02b990015d914f20aeb6ae Mon Sep 17 00:00:00 2001   
From: Furt <lit_69@hotmail.com>   
Date: Mon, 14 Jun 2010 07:34:18 -0500   
Subject: [PATCH] PVP Token Patch With Gold Reward Added   

---   
    src/game/Language.h             |    1 +   
    src/game/Player.cpp              |   37 +++++++++++++++++++++++++++++++++++++   
    src/game/Player.h                |    3 +++   
    src/game/Unit.cpp                |    5 +++++   
    src/game/World.cpp               |   10 ++++++++++   
    src/game/World.h                 |   10 +++++++++-   
    src/mangosd/mangosd.conf.dist.in |   35 +++++++++++++++++++++++++++++++++++   
    7 files changed, 100 insertions(+), 1 deletions(-)   

diff --git a/src/game/Language.h b/src/game/Language.h   
index 38ec346..4f8e6a9 100644   
--- a/src/game/Language.h   
+++ b/src/game/Language.h   
@@ -851,6 +851,7 @@ enum MangosStrings   
       
        // Use for not-in-offcial-sources patches   
        //                    10000-10999   
+    LANG_YOU_RECEIVE_TOKEN          = 11050,   
       
        // Use for custom patches             11000-11999   
diff --git a/src/game/Player.cpp b/src/game/Player.cpp   
index 106fdb4..d40d80a 100644   
--- a/src/game/Player.cpp   
+++ b/src/game/Player.cpp   
@@ -21449,6 +21449,43 @@ void Player::UpdateFallInformationIfNeed( MovementInfo const& minfo,uint16 opcod   
            SetFallInformation(minfo.GetFallTime(), minfo.GetPos()->z);   
    }   
       
+///PVP Token   
+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);   
+    uint32 goldAmount = sWorld.getConfig(CONFIG_PVP_TOKEN_HONOR);   
+   
+    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);   
+   
+    if( goldAmount > 0 )   
+        ModifyMoney(goldAmount);   
+        SaveGoldToDB();   
+        return;   
+   
+    ChatHandler(this).PSendSysMessage(LANG_YOU_RECEIVE_TOKEN);   
+}   
+   
+   
    void Player::UnsummonPetTemporaryIfAny()   
    {   
        Pet* pet = GetPet();   
diff --git a/src/game/Player.h b/src/game/Player.h   
index 544e7e1..6801a77 100644   
--- a/src/game/Player.h   
+++ b/src/game/Player.h   
@@ -2019,6 +2019,9 @@ class MANGOS_DLL_SPEC Player : public Unit   
            void _ApplyWeaponDependentAuraMods(Item *item, WeaponAttackType attackType, bool apply);   
            void _ApplyWeaponDependentAuraCritMod(Item *item, WeaponAttackType attackType, Aura* aura, bool apply);   
            void _ApplyWeaponDependentAuraDamageMod(Item *item, WeaponAttackType attackType, Aura* aura, bool apply);   
+           
+        ///PVP Token   
+        void ReceiveToken();   
       
            void _ApplyItemMods(Item *item,uint8 slot,bool apply);   
            void _RemoveAllItemMods();   
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp   
index d0c82d8..91d3919 100644   
--- a/src/game/Unit.cpp   
+++ b/src/game/Unit.cpp   
@@ -697,6 +697,11 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa   
            if(player_tap && player_tap != pVictim)   
            {   
                player_tap->ProcDamageAndSpell(pVictim, PROC_FLAG_KILL, PROC_FLAG_KILLED, PROC_EX_NONE, 0);   
+               
+            /// PvP Token   
+            int8 leveldiff = player_tap->getLevel() - pVictim->getLevel();   
+            if((pVictim->GetTypeId() == TYPEID_PLAYER) && leveldiff < 10)   
+            player_tap->ReceiveToken();   
       
                WorldPacket data(SMSG_PARTYKILLLOG, (8+8));     //send event PARTY_KILL   
                data << player_tap->GetObjectGuid();            //player with killing blow   
diff --git a/src/game/World.cpp b/src/game/World.cpp   
index abf273d..034178a 100644   
--- a/src/game/World.cpp   
+++ b/src/game/World.cpp   
@@ -755,6 +755,16 @@ void World::LoadConfigSettings(bool reload)   
        setConfig(CONFIG_UINT32_TIMERBAR_BREATH_MAX,      "TimerBar.Breath.Max", 180);   
        setConfig(CONFIG_UINT32_TIMERBAR_FIRE_GMLEVEL,    "TimerBar.Fire.GMLevel", SEC_CONSOLE);   
        setConfig(CONFIG_UINT32_TIMERBAR_FIRE_MAX,        "TimerBar.Fire.Max", 1);   
+       
+    /* PvP Token System */   
+    setConfig(CONFIG_PVP_TOKEN_ENABLE,"PvPToken.Enable", true);   
+    setConfig(CONFIG_PVP_TOKEN_ITEMID,"PvPToken.ItemID", 29434);   
+    setConfig(CONFIG_PVP_TOKEN_ITEMCOUNT,"PvPToken.ItemCount", 1);   
+    setConfig(CONFIG_PVP_TOKEN_HONOR,"PvPToken.Gold", 100000);   
+    setConfig(CONFIG_PVP_TOKEN_RESTRICTION,"PvPToken.MapRestriction", 4);   
+   
+    if(getConfig(CONFIG_PVP_TOKEN_ITEMCOUNT) < 1)   
+    setConfig(CONFIG_PVP_TOKEN_ITEMCOUNT,"PvPToken.ItemCount",1);   
       
        m_VisibleUnitGreyDistance = sConfig.GetFloatDefault("Visibility.Distance.Grey.Unit", 1);   
        if(m_VisibleUnitGreyDistance >  MAX_VISIBILITY_DISTANCE)   
diff --git a/src/game/World.h b/src/game/World.h   
index b289b91..31ee893 100644   
--- a/src/game/World.h   
+++ b/src/game/World.h   
@@ -260,7 +260,15 @@ enum eConfigFloatValues   
        CONFIG_FLOAT_CREATURE_FAMILY_ASSISTANCE_RADIUS,   
        CONFIG_FLOAT_GROUP_XP_DISTANCE,   
        CONFIG_FLOA T_THREAT_RADIUS,   
-    CONFIG_FLOAT_VALUE_COUNT   
+    CONFIG_FLOAT_VALUE_COUNT,   
+       
+    ///PVP Token   
+    CONFIG_PVP_TOKEN_ENABLE,   
+    CONFIG_PVP_TOKEN_ITEMID,   
+    CONFIG_PVP_TOKEN_ITEMCOUNT,   
+    CONFIG_PVP_TOKEN_HONOR,   
+     CONFIG_PVP_TOKEN_RESTRICTION   
+   
    };   
       
    /// Configuration elements   
diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in   
index f5ba807..390c66c 100644   
--- a/src/mangosd/mangosd.conf.dist.in   
+++ b/src/mangosd/mangosd.conf.dist.in   
@@ -1519,3 +1519,38 @@ SOAP.Port = 7878   
    CharDelete.Method = 0   
    CharDelete.MinLevel = 0   
    CharDelete.KeepDays = 30   
+   
+###################################################################################################################   
+# PvP Token System (custom patch)   
+#   
+#   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.Honor
+#       The amount of gold that players will receive after killing an enemy.   
+#       Default: 100000   
+#   
+#   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 = 1   
+PvPToken.ItemID = 29434   
+PvPToken.ItemCount = 1   
+PvPToken.Honor = 100000   
+PvPToken.MapRestriction = 4   
--

Думаю пахать бут, не проверял, но вроде должно.



Ой ща по саням дам !
http://wow.grin.by
Сообщение # 14 отредактировано САХАЛИН - Воскресенье, 26.09.2010, 23:18
lanc
The Hurt Locker
САХАЛИН, как вы собрались командой на ModifyMoney деньги изменять хонор?
Сообщение # 15 написано 30.09.2010 в 12:17
САХАЛИН
Центурион
Упс не дописал )))


Ой ща по саням дам !
http://wow.grin.by
Сообщение # 16 написано 30.09.2010 в 20:07
ph3n
Developer
Данная тема была перемещена из раздела Патчи в ядро MaNGOS.
Причина перемещения: устарело

Переместил: ph3n.
Сообщение # 17 написано 15.10.2012 в 16:41
  • Страница 1 из 1
  • 1
Поиск: