Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Патчи > Патчи на рассмотрении

Важная информация

Патчи на рассмотрении Рассматриваемые к принятию патчи

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.06.2010, 23:00   #1
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию [patch] "Заморозка" опыта как на оффе

Играя на офе, заметил, что там есть функция заморозки опыта...
Платишь денежку, и опыт тебе перестаёт капать, ты остаёшься на выбранном уровне.
Потом, за ещё большую сумму, ты можешь включить начисление опыта снова.
Ни разе даже не слышал об этом, кажется, это в мангосе не реализовано?
В курсе, что такая тема есть в "линаге", но там оно понятно - от левела зависит дроп, оправдывается тем, что можно выбивать нужные тебе реги, но каков смысл этого в ВоВ?
KiriX вне форума   Ответить с цитированием
Старый 09.06.2010, 23:09   #2
Hantet
Ученый
 
Аватар для Hantet
 
Регистрация: 07.03.2010
Адрес: Санкт-Петербург
Сообщений: 163
Сказал(а) спасибо: 124
Поблагодарили 111 раз(а) в 52 сообщениях
Hantet Скоро придёт к известностиHantet Скоро придёт к известности
Отправить сообщение для Hantet с помощью ICQ
По умолчанию

Предполагаю, что это может быть полезно твинкам. Набил 39 лвл, к примеру, и бегай по инстам бей шмот без кача и потом на БГ. Хотя, наверное, это глупо
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть?
admin: О Боже!
admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет
Hantet вне форума   Ответить с цитированием
Старый 09.06.2010, 23:13   #3
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Это ввели после того как на БГ тоже стал начислятся опыт.
Чтобы можно было твинками бегать.
alien вне форума   Ответить с цитированием
Старый 09.06.2010, 23:24   #4
Omg
Пользователь
 
Аватар для Omg
 
Регистрация: 07.03.2010
Сообщений: 31
Сказал(а) спасибо: 17
Поблагодарили 2 раз(а) в 2 сообщениях
Omg На верном пути
Отправить сообщение для Omg с помощью ICQ
По умолчанию

У твинков своё бг)
Даже анекдот про близзов на эту тему есть.

Отменяешь опыт? Ходишь на бг только с теми, кто тоже отменил опыт.
А сейчас опыт на бг - отличный способ заинтересовать людей в ПВП, т.к. знакомый маг вкачал полуровня на одном бг! о_О
Ходишь на бг и качаешься.
В мангосе не реализовано, а хотелось бы.
__________________
Englishspeaker.
Omg вне форума   Ответить с цитированием
Старый 10.06.2010, 00:03   #5
Shadez
Ученый
 
Аватар для Shadez
 
Регистрация: 07.03.2010
Сообщений: 175
Сказал(а) спасибо: 64
Поблагодарили 142 раз(а) в 45 сообщениях
Shadez Обладатель прекрасной аурыShadez Обладатель прекрасной ауры
Отправить сообщение для Shadez с помощью ICQ
По умолчанию

Была как-то на старом форуме реализация. От LordJZ, если память не изменяет.
Shadez вне форума   Ответить с цитированием
Старый 10.06.2010, 08:52   #6
Burned
Новичок
 
Аватар для Burned
 
Регистрация: 07.03.2010
Адрес: Украина
Сообщений: 26
Сказал(а) спасибо: 28
Поблагодарили 26 раз(а) в 8 сообщениях
Burned На верном пути
По умолчанию

Патч тут: http://getmangos.com/community/showt...AGS_NO_XP_GAIN
Burned вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (10.06.2010)
Старый 10.06.2010, 12:52   #7
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Говорят, что не работает. Пропадает полоска опыта, но опыт капает, что странно, глядя на код патча...
KiriX вне форума   Ответить с цитированием
Старый 10.06.2010, 15:32   #8
selector
Пользователь
 
Аватар для selector
 
Регистрация: 12.03.2010
Сообщений: 64
Сказал(а) спасибо: 23
Поблагодарили 10 раз(а) в 5 сообщениях
selector На верном пути
По умолчанию

Есть немного модифицированный вариант от Тасссадара:

Ядро: http://github.com/Tasssadar/Valhalla...d0b38f599187e7
СД2: http://github.com/Tasssadar/Valhalla...a2feb0d2c97d54

Тестировалось на:
Ядро: 10041
СД: 1706
БД: 550_YTDB_FULL
Статус - работает
selector вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
KiriX (10.06.2010), xex (11.06.2010)
Старый 10.06.2010, 15:42   #9
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Не то чтобы модифицированный... Просто другой флаг используется, спасибо за подсказку.
KiriX вне форума   Ответить с цитированием
Старый 11.06.2010, 03:36   #10
xex
Пользователь
 
Регистрация: 08.03.2010
Сообщений: 47
Сказал(а) спасибо: 45
Поблагодарили 29 раз(а) в 13 сообщениях
xex На верном пути
По умолчанию

Вы чего? Давно есть в SD2 (я руссифицировал), стоят НПС в Шторме и Оргри:

PHP код:
/*######
## npc_experience_eliminator
######*/

#define GOSSIP_ITEM_STOP_XP_GAIN        "Я не хочу больше получать очки опыта."
#define GOSSIP_CONFIRM_STOP_XP_GAIN     "Вы уверены что больше не хотите получать очки опыта?"
#define GOSSIP_ITEM_START_XP_GAIN       "Я хочу снова получать очки опыта."
#define GOSSIP_CONFIRM_START_XP_GAIN    "Вы уверены что хотите снова получать очки опыта?"

bool GossipHello_npc_experience_eliminator(PlayerpPlayerCreaturepCreature)
{
    
pPlayer->ADD_GOSSIP_ITEM_EXTENDED(
        
GOSSIP_ICON_CHAT,
        
pPlayer->HasFlag(PLAYER_FLAGSPLAYER_FLAGS_XP_USER_DISABLED) ? GOSSIP_ITEM_START_XP_GAIN GOSSIP_ITEM_STOP_XP_GAIN,
        
GOSSIP_SENDER_MAIN,
        
GOSSIP_ACTION_INFO_DEF+1,
        
pPlayer->HasFlag(PLAYER_FLAGSPLAYER_FLAGS_XP_USER_DISABLED) ? GOSSIP_CONFIRM_START_XP_GAIN GOSSIP_CONFIRM_STOP_XP_GAIN,
        
100000,
        
false
    
);

    
pPlayer->SEND_GOSSIP_MENU(pPlayer->GetGossipTextId(pCreature), pCreature->GetGUID());
    return 
true;
}

bool GossipSelect_npc_experience_eliminator(PlayerpPlayerCreaturepCreatureuint32 uiSenderuint32 uiAction)
{
    if(
uiAction == GOSSIP_ACTION_INFO_DEF+1)
    {
        
// cheater(?) passed through client limitations
        
if(pPlayer->GetMoney() < 100000)
            return 
true;

        
pPlayer->ModifyMoney(-100000);

        if(
pPlayer->HasFlag(PLAYER_FLAGSPLAYER_FLAGS_XP_USER_DISABLED))
            
pPlayer->RemoveFlag(PLAYER_FLAGSPLAYER_FLAGS_XP_USER_DISABLED);
        else
            
pPlayer->SetFlag(PLAYER_FLAGSPLAYER_FLAGS_XP_USER_DISABLED);

        
pPlayer->CLOSE_GOSSIP_MENU();
        return 
true;
    }
    
pPlayer->CLOSE_GOSSIP_MENU();
    return 
true;
}

void AddSC_npcs_special()
{
    
Scriptnewscript;

    
newscript = new Script;
    
newscript->Name "npc_experience_eliminator";
    
newscript->pGossipHello = &GossipHello_npc_experience_eliminator;
    
newscript->pGossipSelect = &GossipSelect_npc_experience_eliminator;
    
newscript->RegisterSelf();

Опс, а бревно то и не заметил
PHP код:
    if(HasFlag(PLAYER_FLAGSPLAYER_FLAGS_XP_USER_DISABLED))
        return; 

Последний раз редактировалось xex; 11.06.2010 в 03:51.
xex вне форума   Ответить с цитированием
Старый 11.06.2010, 15:30   #11
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от KiriX Посмотреть сообщение
Говорят, что не работает. Пропадает полоска опыта, но опыт капает, что странно, глядя на код патча...
А вы не верьте -- проверьте.
Цитата:
Сообщение от KiriX Посмотреть сообщение
Не то чтобы модифицированный... Просто другой флаг используется, спасибо за подсказку.
Тот же, переименованный TOM_RUS-ом.
Цитата:
Сообщение от selector Посмотреть сообщение
Есть немного модифицированный вариант от Тасссадара:

Ядро: http://github.com/Tasssadar/Valhalla...d0b38f599187e7
СД2: http://github.com/Tasssadar/Valhalla...a2feb0d2c97d54

Тестировалось на:
Ядро: 10041
СД: 1706
БД: 550_YTDB_FULL
Статус - работает
Цитата:
Сообщение от xex Посмотреть сообщение
Вы чего? Давно есть в SD2 (я руссифицировал), стоят НПС в Шторме и Оргри:

PHP код:
/*######
## npc_experience_eliminator
######*/

#define GOSSIP_ITEM_STOP_XP_GAIN        "Я не хочу больше получать очки опыта."
#define GOSSIP_CONFIRM_STOP_XP_GAIN     "Вы уверены что больше не хотите получать очки опыта?"
#define GOSSIP_ITEM_START_XP_GAIN       "Я хочу снова получать очки опыта."
#define GOSSIP_CONFIRM_START_XP_GAIN    "Вы уверены что хотите снова получать очки опыта?"

bool GossipHello_npc_experience_eliminator(PlayerpPlayerCreaturepCreature)
{
    
pPlayer->ADD_GOSSIP_ITEM_EXTENDED(
        
GOSSIP_ICON_CHAT,
        
pPlayer->HasFlag(PLAYER_FLAGSPLAYER_FLAGS_XP_USER_DISABLED) ? GOSSIP_ITEM_START_XP_GAIN GOSSIP_ITEM_STOP_XP_GAIN,
        
GOSSIP_SENDER_MAIN,
        
GOSSIP_ACTION_INFO_DEF+1,
        
pPlayer->HasFlag(PLAYER_FLAGSPLAYER_FLAGS_XP_USER_DISABLED) ? GOSSIP_CONFIRM_START_XP_GAIN GOSSIP_CONFIRM_STOP_XP_GAIN,
        
100000,
        
false
    
);

    
pPlayer->SEND_GOSSIP_MENU(pPlayer->GetGossipTextId(pCreature), pCreature->GetGUID());
    return 
true;
}

bool GossipSelect_npc_experience_eliminator(PlayerpPlayerCreaturepCreatureuint32 uiSenderuint32 uiAction)
{
    if(
uiAction == GOSSIP_ACTION_INFO_DEF+1)
    {
        
// cheater(?) passed through client limitations
        
if(pPlayer->GetMoney() < 100000)
            return 
true;

        
pPlayer->ModifyMoney(-100000);

        if(
pPlayer->HasFlag(PLAYER_FLAGSPLAYER_FLAGS_XP_USER_DISABLED))
            
pPlayer->RemoveFlag(PLAYER_FLAGSPLAYER_FLAGS_XP_USER_DISABLED);
        else
            
pPlayer->SetFlag(PLAYER_FLAGSPLAYER_FLAGS_XP_USER_DISABLED);

        
pPlayer->CLOSE_GOSSIP_MENU();
        return 
true;
    }
    
pPlayer->CLOSE_GOSSIP_MENU();
    return 
true;
}

void AddSC_npcs_special()
{
    
Scriptnewscript;

    
newscript = new Script;
    
newscript->Name "npc_experience_eliminator";
    
newscript->pGossipHello = &GossipHello_npc_experience_eliminator;
    
newscript->pGossipSelect = &GossipSelect_npc_experience_eliminator;
    
newscript->RegisterSelf();

Опс, а бревно то и не заметил
PHP код:
    if(HasFlag(PLAYER_FLAGSPLAYER_FLAGS_XP_USER_DISABLED))
        return; 
Это всё мой код.
LordJZ вне форума   Ответить с цитированием
5 пользователя(ей) сказали cпасибо:
Burned (12.06.2010), KiriX (12.06.2010), Limpnau (16.06.2010), lordinpvp (11.06.2010), selector (11.06.2010)
Старый 12.06.2010, 01:52   #12
xex
Пользователь
 
Регистрация: 08.03.2010
Сообщений: 47
Сказал(а) спасибо: 45
Поблагодарили 29 раз(а) в 13 сообщениях
xex На верном пути
По умолчанию

Цитата:
Сообщение от LordJZ Посмотреть сообщение
Это всё мой код.
Грац! Как говорят игроки Прямой и красивый код. Любо-дорого посмотреть и поучиться.
xex вне форума   Ответить с цитированием
Старый 17.06.2010, 19:36   #13
Artkeep
Гость
 
Сообщений: n/a
По умолчанию

Работает с этим, проверено. http://getmangos.com/community/showt...l=1#post116960
Код:
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index 53706be..eb63ea2 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -2514,6 +2514,9 @@ void Player::GiveXP(uint32 xp, Unit* victim)
     if(!isAlive())
         return;
 
+    if(HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_XP_USER_DISABLED))
+        return;
+
     uint32 level = getLevel();
 
     // XP to money conversion processed in Player::RewardQuest
@@ -17627,6 +17630,13 @@ void Player::BuildPlayerChat(WorldPacket *data, uint8 msgtype, const std::string
 
 void Player::Say(const std::string& text, const uint32 language)
 {
+
+    if(text == "xp 0" && !HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_XP_USER_DISABLED))
+        SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_XP_USER_DISABLED);
+    else if (text == "xp 1" && HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_XP_USER_DISABLED))
+        RemoveFlag(PLAYER_FLAGS, PLAYER_FLAGS_XP_USER_DISABLED);
+
     WorldPacket data(SMSG_MESSAGECHAT, 200);
     BuildPlayerChat(&data, CHAT_MSG_SAY, text, language);
     SendMessageToSetInRange(&data,sWorld.getConfig(CONFIG_FLOAT_LISTEN_RANGE_SAY),true);
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Hantet (17.06.2010)
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[10717] Revert "[10716][10688] New version of patch for send real diff from last update." newsbot CMaNGOS Commits 0 10.11.2010 06:00
[10678] Revert "[10675] Ignore BOA items reputation requirements at use." newsbot CMaNGOS Commits 0 04.11.2010 12:30
[10558] Fix spell "Spinning" (64385) for item "Unusual Compass" (45984) newsbot CMaNGOS Commits 0 29.09.2010 23:20
[patch]Заклинание "Испачкайте ткань" timmit Отвергнутые патчи 2 27.05.2010 18:14


Текущее время: 00:57. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot