Можно ли сделать правильное отображение получаемого опыта?
|
|
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 |
|
| |