AMX MOD X
Четверг, 26.12.2024, 22:33:39



Приветствую Вас Гость | RSS
[ Главная ] [ Помогите разобраться с уроном в моде Ultimate war - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
Помогите разобраться с уроном в моде Ultimate war
oberon47Дата: Воскресенье, 24.01.2010, 20:53:50 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 4
Репутация: 0
Статус: Не в сети
Есть в этом моде такой скил
Значение new const Float:p_critical[10] = { 0.04, 0.06, 0.08, 0.10, 0.13, 0.16, 0.19, 0.21, 0.24, 0.28 }; // Critical Strike
Quote
// Critical Strike
public SKILL_CriticalStrike( iAttacker, iVictim, iDamage, iHitPlace, iWeapon )
{
new iSkillLevel = p_data_skill[iAttacker][SKILL_SHADOWSTRIKE];

// Has this player critical strike?
if ( iSkillLevel )
{
// Will this hit a critical hit?
if ( random_float( 0.0, 1.0 ) <= p_critical[iSkillLevel-1] )
{
// Calculate the bonus dmg
new iBonusDamage = floatround( float( iDamage ) * p_critical[iSkillLevel-1] );

// Add the default damage to the bonus damage
iBonusDamage += iDamage;

// Damage our victim
UWC3NG_DoDamage( iVictim, iAttacker, iBonusDamage, iWeapon, iHitPlace );

// Make the user glow
SHARED_Glow( iVictim, iBonusDamage, 0, 0, 0 );

// Lets make a screenfade
Create_ScreenFade( iVictim, (1<<10), (1<<10), (1<<12), 255, 0, 0, g_GlowLevel[iVictim][0] );
}
}

return;
}

Так сам вопрос правильно ли я понимаю
iBonusDamage = floatround( float( iDamage ) * p_critical[iSkillLevel-1] это урон помноженный на значение из константы. т.е урон * 0.04 (пример на 1 уровне) почему только пишется iSkillLevel-1 ?
iBonusDamage += iDamage; это полученный бонус прибавляется к урону ?
UWC3NG_DoDamage( iVictim, iAttacker, iBonusDamage, iWeapon, iHitPlace ); это жертве наносит урон атакующий со значением iBonusDamage ?
SHARED_Glow( iVictim, iBonusDamage, 0, 0, 0 ); Что ето такое ?
Create_ScreenFade( iVictim, (1<<10), (1<<10), (1<<12), 255, 0, 0, g_GlowLevel[iVictim][0] ); а это что? подсветка жертвы ?
И floatround это что такое? Почему нельзя просто брать формулу iDamage * p_critical
 
PomanoBДата: Вторник, 26.01.2010, 13:51:14 | Сообщение # 2
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Quote (oberon47)
это урон помноженный на значение из константы. т.е урон * 0.04 (пример на 1 уровне) почему только пишется iSkillLevel-1 ?

Да, правильно, константа берётся из массива, где они начинаются с нуля, тогда как уровни с 1, поэтому -1

Quote (oberon47)
iBonusDamage += iDamage; это полученный бонус прибавляется к урону ?
UWC3NG_DoDamage( iVictim, iAttacker, iBonusDamage, iWeapon, iHitPlace ); это жертве наносит урон атакующий со значением iBonusDamage ?

Да, всё верно

Quote (oberon47)
SHARED_Glow( iVictim, iBonusDamage, 0, 0, 0 ); Что ето такое ?

Можно предположить, что это что-то связанное с сиянием)

Quote (oberon47)
Create_ScreenFade( iVictim, (1<<10), (1<<10), (1<<12), 255, 0, 0, g_GlowLevel[iVictim][0] ); а это что? подсветка жертвы ?

Это, судя по названию, затемнение экрана жертве

Quote (oberon47)
И floatround это что такое?

floatround приводит число с точкой к целому числу, то есть урон 25,1 округляется до 25


http://romanov4400.mybrute.com
 
oberon47Дата: Вторник, 26.01.2010, 21:09:39 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 4
Репутация: 0
Статус: Не в сети
Спасибо, PomanoB

Дело в том, что во всех описаниях к данному мода идет - этот skill как удвоенный урон
А судя по скрипту если нанес жертве 100 dmg то бонусом прибавится еще 4 dmg (на первом уровне) И конечный результат будет 104 dmg
Неужели играя в этот мод ( я 2 года гамаю на разных серверах, описание читал на 16 серверах (даже на украинском)) никто не обратил на это внимание ?!
Вот етот skill в описаниях рекламируется как увеличение урона при каждом попадании

Quote
new const Float:p_trueshot[10] = { 0.04, 0.06, 0.08, 0.10, 0.13, 0.16, 0.19, 0.21, 0.24, 0.28 }; // Trueshot Aura
#define INTELLECT_TRUESHOT_BONUS 0.10
public SKILL_TrueShotAura( iAttacker, iVictim, iWeapon, iDamage, iHitPlace )
{
static iSkillLevel;
static Float:iTrueshotBonus;

iSkillLevel = p_data_skill[iAttacker][SKILL_TRUESHOTAURA];
if ( iSkillLevel > 0 )
{
// Add the bonus from the const
iTrueshotBonus = p_trueshot[iSkillLevel-1];

// The player has intellect skilled, add the bonus
if ( p_data_attrib[iAttacker][ATTRIB_INTELLECT] >= INTELLECT_TRUESHOT )
{
iTrueshotBonus += INTELLECT_TRUESHOT_BONUS;
}

static iTempDamage;
iTempDamage = floatround( float( iDamage ) * iTrueshotBonus );

// Damage the user
UWC3NG_DoDamage( iVictim, iAttacker, iTempDamage, iWeapon, iHitPlace );

// Make the user glow!
SHARED_Glow( iVictim, ( 2 * iTempDamage ), 0, 0, 0 );

// Create a screen fade
Create_ScreenFade( iVictim, (1<<10), (1<<10), (1<<12), 255, 0, 0, iTempDamage );
}

return;


А по скрипту выходит, что урон уменьшится :(
Может всетаки, чего то упустил из этого скрипта - не могли же полмира обуть с описанием ?!
 
PomanoBДата: Вторник, 26.01.2010, 21:46:39 | Сообщение # 4
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Quote (oberon47)
А по скрипту выходит, что урон уменьшится

Везде же прибавляется только, пусть немного, не удвоенный, но прибавляется


http://romanov4400.mybrute.com
 
oberon47Дата: Вторник, 26.01.2010, 22:31:14 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 4
Репутация: 0
Статус: Не в сети
Нее
Посчитаем
iTrueshotBonus = p_trueshot[iSkillLevel-1]; возьмем по мах 0,28
iTrueshotBonus += INTELLECT_TRUESHOT_BONUS; интелект у нас тоже есть 0,28+0,1=0,38
iTempDamage = floatround( float( iDamage ) * iTrueshotBonus ); нанесли 100 dmg это значит 100*0,38=38 dmg
UWC3NG_DoDamage( iVictim, iAttacker, iTempDamage, iWeapon, iHitPlace ); окончательный вариант, врагу нанесли 38 dmg ( вместо 100)

Или тут надо еще учитывать изначальный dmg = 100 ? В формулах это не светится, но может 100+38 надо ?! Тогда мир спасен будет от вранья :)

Сообщение отредактировал oberon47 - Вторник, 26.01.2010, 22:32:56
 
PomanoBДата: Вторник, 26.01.2010, 23:12:03 | Сообщение # 6
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Если эта функция зарегистрирована как register_event("Damage"...)
То да, остается ещё первоначальный урон

Тут надо смотреть как как вызывается эта функция


http://romanov4400.mybrute.com
 
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024