Добро пожаловать на форум, Гость, это ваша панель
  • Страница 1 из 1
  • 1
Можно ли сделать правильное отображение получаемого опыта?
ganya
Дата: Воскресенье, 10.06.2012, 10:04 | Сообщение # 1
офлайн

  • Сообщения: 41
  • Награды: 0
  • Замечания:
 
Собственно, исходя из этой темы хотелось бы узнать возможно ли сделать правильное отображение получаемого опыта?
В принципе голова варит в нужном напрвлении -->
Code
if((get_user_flags(idUser) & ADMIN_LEVEL_H))

show XP x2
Но мозги не прокачаны - у кого есть идеи? :)




Сообщение отредактировал ganya - Воскресенье, 10.06.2012, 10:10
 
SMaster
Дата: Воскресенье, 10.06.2012, 17:28 | Сообщение # 2
офлайн

  • Сообщения: 2189
  • Награды: 46
  • Замечания:
 
Исходя из этой темы

Code
new szShowMessageXP[256];
if((get_user_flags(idUser) & ADMIN_LEVEL_H)) //Если игрок имеет флаг 't'    
{
     p_data[idUser][P_XP] += floatround(iRealBonusXP * 2.0);    
     format(szShowMessageXP, charsmax(szShowMessageXP), "XP VIP: %d",floatround(iRealBonusXP * 2.0));  
     iRealBonusXP = floatround(iLevelMultiplier * iBonusXP * 2.0);     
}     
else
{
     p_data[idUser][P_XP] += iRealBonusXP;
     format(szShowMessageXP, charsmax(szShowMessageXP), "XP: %d",iRealBonusXP);     
}

set_dhudmessage(0,255,0, 0.65,0.5,2,0.0,2.0,0.02,0.02, false);
show_dhudmessage(idUser, szShowMessageXP);


Подключи
Code
#include <dhudmessage>


Наша группа вконтакте http://vk.com/nano_world_cs

Контакты:
ICQ 607786179
Skype xonahead

 
ganya
Дата: Понедельник, 11.06.2012, 19:33 | Сообщение # 3
офлайн

  • Сообщения: 41
  • Награды: 0
  • Замечания:
 
спасибо SMaster, не подскажешь как HUD пониже сделать?

 
Contra63
Дата: Понедельник, 11.06.2012, 23:05 | Сообщение # 4
офлайн

  • Сообщения: 830
  • Награды: 7
  • Замечания:
 
Code
set_hudmessage ( red=255, green=144, blue=0, Float:x=-0.44, Float:y=0.35, effects=0, Float:fxtime=6.0,
  Float:holdtime=12.0, Float:fadeintime=0.1, Float:fadeouttime=0.2, channel=4 )


red=255 - от 0 до 255 интенсивность красного цвета
green=144 - от 0 до 255 интенсивность зеленого цвета
blue=0 - от 0 до 255 интенсивность голубого цвета
Float:x=0.44 - Координата X, идёт слева направо, 0.0 слева, 1.0 справа, -1.0 по центру
Float:y=0.35 - Координата Y, идёт сверху вниз, 0.0 сверху, 1.0 снизу, -1.0 по центру
effects=0 - Эффекты сообщения:
0 - Без эффектов
1 - Мерцание
2 - Печатает буквы по очереди

Float:fxtime=6.0 - Сколько времени будет сохраняться блеск во втором эффекте
Float:holdtime=12.0 - Сколько времени сообщение будет на экране
Float:fadeintime=0.1 - Как быстро будет печататься текст ( во втором эффекте - 1 буква в процент секунд)
Float:fadeouttime=0.2 - За какое время сообщение уйдет с экрана ( плавное исчезновение )
channel=4 - Канал сообщения ( всего каналов 4 ) если поставить -1 - то будет искать следующий свободный канал.




Сообщение отредактировал Contra63 - Понедельник, 11.06.2012, 23:07
 
ganya
Дата: Вторник, 12.06.2012, 02:10 | Сообщение # 5
офлайн

  • Сообщения: 41
  • Награды: 0
  • Замечания:
 
Contra63, Команды компилер не прожевал, но благодаря описанию, настроил на ура! Благодарю за помощь!



Сообщение отредактировал ganya - Вторник, 12.06.2012, 02:10
 
Contra63
Дата: Вторник, 12.06.2012, 10:56 | Сообщение # 6
офлайн

  • Сообщения: 830
  • Награды: 7
  • Замечания:
 
ganya, команды для наглядности. :)

 
WhiTeWoLF
Дата: Суббота, 12.01.2013, 16:45 | Сообщение # 7
офлайн

  • Сообщения: 14
  • Награды: 0
  • Замечания:
 
сделал все как написано один фиг не робит
new Float:fCurrentLevel = float( p_data[idUser][P_LEVEL] );
new Float:iLevelMultiplier = ( fCurrentLevel / float(MAX_LEVELS) ) + 1.0;
new iRealBonusXP = floatround(iLevelMultiplier * iBonusXP);

//Если игрок имеет флаг 't'
if((get_user_flags(id) & ADMIN_LEVEL_H))
p_data[idUser][P_XP] += floatround(iRealBonusXP * 2.0);
else
p_data[idUser][P_XP] += iRealBonusXP;

p_data[idUser][P_XP] += iRealBonusXP;

XP_Check( idUser );

return iRealBonusXP;
}

return 0;
}
 
Contra63
Дата: Среда, 16.01.2013, 01:02 | Сообщение # 8
офлайн

  • Сообщения: 830
  • Награды: 7
  • Замечания:
 
WhiTeWoLF

   
Код
if ( iBonusXP != 0 )
     {
         new Float:fCurrentLevel = float( p_data[idUser][P_LEVEL] );
         new Float:iLevelMultiplier = ( fCurrentLevel / float(MAX_LEVELS) ) + 1.0;
         new iRealBonusXP = floatround(iLevelMultiplier * iBonusXP);
/*
     if((get_user_flags(idUser) & ADMIN_LEVEL_H))
         p_data[idUser][P_XP] += floatround(iRealBonusXP * 4.0);
     else
         p_data[idUser][P_XP] += iRealBonusXP;  
*/

     new szShowMessageXP[256];
     if((get_user_flags(idUser) & ADMIN_LEVEL_H)) //Если игрок имеет флаг 't'     
     {
         p_data[idUser][P_XP] += floatround(iRealBonusXP * 2.0);     
         format(szShowMessageXP, charsmax(szShowMessageXP), "XP VIP: %d",floatround(iRealBonusXP * 4.0));   
         iRealBonusXP = floatround(iLevelMultiplier * iBonusXP * 2.0);      
     }      
     else
     {
         p_data[idUser][P_XP] += iRealBonusXP;
         format(szShowMessageXP, charsmax(szShowMessageXP), "XP: %d",iRealBonusXP);      
     }
      
     set_dhudmessage(0,255,0, 0.65,0.5,2,0.0,2.0,0.02,0.02, false);
     show_dhudmessage(idUser, szShowMessageXP);

         XP_Check( idUser );


 
Syrax
Дата: Вторник, 22.01.2013, 14:23 | Сообщение # 9
офлайн

  • Сообщения: 29
  • Награды: 0
  • Замечания:
 
Добрый день. Когда админ с флагом t убивает кого-нибудь, его выбрасывает с ошибкой:
Host_Error: UserMsg: Not Present on Client 254 подскажите, как ее исправить?

Ошибку исправил.


Сообщение отредактировал Syrax - Вторник, 22.01.2013, 14:29
 
  • Страница 1 из 1
  • 1
Поиск: