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

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

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

PvP Token System [Rewrite] - Форум

  • Сторінка 1 з 1
  • 1
PvP Token System [Rewrite]
keonjiДата: Субота, 15.01.2011, 18:41 | Сообщение # 1



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

Замечания:

Оффлайн
Общее: PvP Token System [Rewrite]
Стандартный Пвптокен, но добавлена возможность выдавать золото, честь и АП.
Код модифицировали
Batters, keonji, САХАЛИН и bondiano
Нужен тест!

Code

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    
@@ -8000,7 +8000,7 @@ void Player::SendLoot(ObjectGuid guid, L
               if (!bones->lootForBody)
               {
                   bones->lootForBody = true;
-                uint32 pLevel = bones->loot.gold;
+               uint32 pLevel = bones->loot. gold;
                   bones->loot.clear();
                   if (GetBattleGround()->GetTypeID() == BATTLEGROUND_AV)
                       loot->FillLoot(0, LootTemplates_Creature, this, false);
@@ -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);    
+ uint32 honorAmount = sWorld.getConfig(CONFIG_PVP_TOKEN_HONOR);    
+ uint32 arenaAmount = sWorld.getConfig(CONFIG_PVP_TOKEN_ARENA);    
+    
+ 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( honorAmount > 0 )    
+ ModifyHonorPoints(honorAmount);    
+ SaveToDB();    
+ return;    
+    
+ if( goldAmount > 0 )    
+ ModifyMoney(goldAmount);    
+ SaveGoldToDB();    
+ return;    
+    
+ if( arenaAmount > 0 )    
+ ModifyArenaPoints(arenaAmount);    
+ SaveToDB();    
+ 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_HONOR,"PvPToken.Honor", 75000);    
+ setConfig(CONFIG_PVP_TOKEN_ARENA,"PvPToken.Arena", 5000);    
+ 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_HONOR,    
+ CONFIG_PVP_TOKEN_ARENA,    
+ 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.GoldCount    
+# The amount of gold that players will receive after killing an enemy.    
+# Default: 100000    
+#    
+# PvPToken.Honor    
+# The amount of honor points that players will receive after killing an enemy.    
+# Default: 75000    
+#    
+# PvPToken.Arena    
+# The amount of arena points that players will receive after killing an enemy.    
+# Default: 5000    
+#    
+# 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.Honor = 75000    
+PvPToken.Arena = 5000    
+PvPToken.MapRestriction = 4


Сообщение отредактировал keonji - Субота, 15.01.2011, 18:42
 
  • Сторінка 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