Показать сообщение отдельно
Старый 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)