Добро пожаловать на форум, Гость, это ваша панель
  • Страница 1 из 1
  • 1
Как сделать прокачку XP для VIP в несколько раз быстрее?
SMaster
Дата: Суббота, 21.04.2012, 18:31 | Сообщение # 1
офлайн

  • Сообщения: 2189
  • Награды: 46
  • Замечания:
 
Как сделать прокачку XP для VIP в несколько раз быстрее?


Шаг 1.

Открываешь XP.inl

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

* 2.0 и есть во сколько раз качаться будет быстрее.

Скрин как должно быть:
Прикрепления: 2750069.png (13.1 Kb)


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

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

 
PATRUL
Дата: Суббота, 21.04.2012, 20:47 | Сообщение # 2
офлайн

  • Сообщения: 718
  • Награды: 5
  • Замечания:
 
На скриншоте if(if(( ..

Добавлено (21.04.2012, 20:47)
---------------------------------------------
И ещё мне ошибку выдает warning 213: tag mismatch
на вот эту строчку: p_data[idUser][P_XP] += floatround(iRealBonusXP * 2);



 
Own=Pwnz
Дата: Суббота, 21.04.2012, 21:18 | Сообщение # 3
офлайн

  • Сообщения: 76
  • Награды: 2
  • Замечания:
 
warning 213: tag mismatch не ошибка а предупреждение или изза этого серв будет падать
 
TWENchik
Дата: Суббота, 21.04.2012, 22:08 | Сообщение # 4
офлайн

  • Сообщения: 172
  • Награды: 2
  • Замечания:
 
SMaster,
//Если игрок имеет флаг 't'
if((get_user_flags(idUser) & ADMIN_LEVEL_H))
p_data[idUser][P_XP] += floatround(iRealBonusXP * 2);
else
p_data[idUser][P_XP] += iRealBonusXP;

если ADMIN_LEVEL_H изменить на ADMIN_LEVEL_D, то админ с флагом "P" будет качать в 2 раза быстрее?
 
Contra63
Дата: Суббота, 21.04.2012, 23:32 | Сообщение # 5
офлайн

  • Сообщения: 830
  • Награды: 7
  • Замечания:
 
В самом конце файла. Надо добавить.

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


Под 3.0rc13

На скрине
Code
p_data[idUser][P_XP] += iRealBonusXP;
2 раза. Это ошибка.(на мой взгляд)




Сообщение отредактировал Contra63 - Суббота, 21.04.2012, 23:43
 
SMaster
Дата: Воскресенье, 22.04.2012, 01:24 | Сообщение # 6
офлайн

  • Сообщения: 2189
  • Награды: 46
  • Замечания:
 
Скриншот заменил и удалил лишнюю строчку.
Исправьте у себя.

warning 213: tag mismatch - убрал.


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

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

 
nymbus2000
Дата: Четверг, 07.06.2012, 21:05 | Сообщение # 7
офлайн

  • Сообщения: 130
  • Награды: 0
  • Замечания:
 
Проверил, качает, только отображается в сообщениях нормальное количество опыта а должно в 2 раза быстрее !

CS: -=*{Vitaliy}*=-
Skype: opa_nao_O
 
ganya
Дата: Понедельник, 11.06.2012, 19:33 | Сообщение # 8
офлайн

  • Сообщения: 41
  • Награды: 0
  • Замечания:
 
nymbus2000, http://perfect-soft.su/forum/56-654-1#4584

 
HeKuT
Дата: Понедельник, 13.08.2012, 11:12 | Сообщение # 9
офлайн

  • Сообщения: 22
  • Награды: 0
  • Замечания:
 
тут всё написанно

Добавлено (13.08.2012, 11:11)
---------------------------------------------
короче находишь в xp.inl это
stock XP_Give( idUser, iBonusXP )
{

if ( !WC3_Check() || !idUser )
{
return 0;
}

// Make sure we have the minimum amount of players
if ( !XP_MinPlayers() )
{
return 0;
}

//CSSB
// Bonus calculated by:
// Bonus XP * (lvl of player/float(MAX_LEVELS) + 1.0)
// I.E. if Player is level MAX_LEVELS, then it will be Bonus XP * 2.0

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);

p_data[idUser][P_XP] += iRealBonusXP;

XP_Check( idUser );

return iRealBonusXP;
}

return 0;
}

Добавлено (13.08.2012, 11:12)
---------------------------------------------
и заменяешь на этот код

stock XP_Give( idUser, iBonusXP )
{

if ( !WC3_Check() || !idUser )
{
return 0;
}

// Make sure we have the minimum amount of players
if ( !XP_MinPlayers() )
{
return 0;
}

//CSSB
// Bonus calculated by:
// Bonus XP * (lvl of player/float(MAX_LEVELS) + 1.0)
// I.E. if Player is level MAX_LEVELS, then it will be Bonus XP * 2.0

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);

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);

XP_Check( idUser );

return iRealBonusXP;
}

return 0;
}

 
runetov
Дата: Понедельник, 13.08.2012, 14:00 | Сообщение # 10
офлайн

  • Сообщения: 283
  • Награды: 8
  • Замечания:
 
AHToXa_xD, Надо сначала исходник с модом скачать!



Сообщение отредактировал runetov - Понедельник, 13.08.2012, 16:01
 
BA3YKA
Дата: Среда, 12.09.2012, 11:33 | Сообщение # 11
офлайн

  • Сообщения: 8
  • Награды: 0
  • Замечания:
 
Помогите что не так???? я не могу это найти
Прикрепления: XP.inl (19.5 Kb)
 
Satyan
Дата: Пятница, 21.09.2012, 12:30 | Сообщение # 12
офлайн

  • Сообщения: 15
  • Награды: 0
  • Замечания:
 
У меня вообще нет этого файла,где его искать?
 
runetov
Дата: Пятница, 21.09.2012, 21:21 | Сообщение # 13
офлайн

  • Сообщения: 283
  • Награды: 8
  • Замечания:
 
Satyan, Скачай исходник War3ftChangeLevel (Версия 2.4.1) четы ерунду городишь!!!

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

  • Сообщения: 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;
}
 
runetov
Дата: Суббота, 12.01.2013, 20:15 | Сообщение # 15
офлайн

  • Сообщения: 283
  • Награды: 8
  • Замечания:
 
WhiTeWoLF, Все нормально работает делай правильно, даже скрины есть как правильно делать а вы? тупите, сори за грубость)

 
TWENchik
Дата: Воскресенье, 13.01.2013, 08:57 | Сообщение # 16
офлайн

  • Сообщения: 172
  • Награды: 2
  • Замечания:
 
WhiTeWoLF, если в чате не отображается двойной опыт не значит что не работает
 
TWENchik
Дата: Воскресенье, 13.01.2013, 12:25 | Сообщение # 17
офлайн

  • Сообщения: 172
  • Награды: 2
  • Замечания:
 
вот кому надо xp.inl с отображением в чате
Прикрепления: 9915229.inl (29.1 Kb)


Сообщение отредактировал TWENchik - Воскресенье, 13.01.2013, 12:25
 
Санька6222
Дата: Четверг, 17.01.2013, 14:03 | Сообщение # 18
офлайн

  • Сообщения: 58
  • Награды: 1
  • Замечания:
 
Цитата (TWENchik)
вот кому надо xp.inl с отображением в чатеПрикрепления: 9915229.inl(29Kb)

а на CSSB надо другой код?
напиши пожалуйста только код.
 
Contra63
Дата: Четверг, 17.01.2013, 23:34 | Сообщение # 19
офлайн

  • Сообщения: 830
  • Награды: 7
  • Замечания:
 
Санька6222, все работает, для лентяев я слил War3FT MOD Private for Contra[AIM]



Сообщение отредактировал Contra63 - Четверг, 17.01.2013, 23:48
 
big-bad-voodoo
Дата: Воскресенье, 18.08.2013, 05:32 | Сообщение # 20
офлайн

  • Сообщения: 6
  • Награды: 0
  • Замечания:
 
Подскажите как прописать 2 випки т.е. на уровень H и уровень G ? Пробовал сам в итоге одна випка работает правильно и дает правильный множетиль, а вторая выдает не верный множитель а значительно больше.

Добавлено (18.08.2013, 05:32)
---------------------------------------------
Код
// Bonus calculated by:
      // Bonus XP * (lvl of player/10 + 1.0)
      // I.E. if Player is level 10, then it will be Bonus XP * 2.0
        
      if ( iBonusXP != 0 )
      {
          new Float:fCurrentLevel = float( p_data[id][P_LEVEL] );
          new Float:iLevelMultiplier = ( fCurrentLevel / float(MAX_LEVELS) ) + 1.0;
          new iRealBonusXP = floatround(iLevelMultiplier * iBonusXP);
            
          new szShowMessageXP[256];
          if((get_user_flags(id) & ADMIN_LEVEL_H)) //Если игрок имеет флаг 't'       
          {
          p_data[id][P_XP] += floatround(iRealBonusXP * 1.5);       
          format(szShowMessageXP, charsmax(szShowMessageXP), "XP VIP 1.5: %d",floatround(iRealBonusXP * 1.5));     
          iRealBonusXP = floatround(iLevelMultiplier * iBonusXP * 1.5);        
          }
          else
               p_data[id][P_XP] += iRealBonusXP;

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

          set_dhudmessage(178,34,34, 0.65,0.5,2,0.0,2.0,0.02,0.02, false);
           show_dhudmessage(id, szShowMessageXP);      

          XP_Check( id );

          return iRealBonusXP;
      }

      return 0;
}
Вот так у меня получилось. Вроде работает всё четко. Но меня смущает вот эта строчка в випке прописанной на уровень G:
Код
p_data[id][P_XP] += floatround(iRealBonusXP * 1.5);

Там должно быть прописано *2.5 но при таком значении он умножал на 3.5, я решил понизить и получилось что на *1.5 он множит на 2.5. Не подскажите почему?
И если есть ошибки, то помогите исправить. Да и ещё хотелось бы чтоб сообщения можно было сделать разного цвета. Сам пробовал но у меня руки видать не из того места и как бы я не пробовал выдает один цвет.

Это всё под war3ft v3.0rc13 мод.


Сообщение отредактировал big-bad-voodoo - Воскресенье, 18.08.2013, 05:33
 
  • Страница 1 из 1
  • 1
Поиск: