Перейти к содержанию
Asterios

Жук дебафер Tar beetle в Фоге.


Рекомендуемые сообщения

Ревизия: 24702

Сейчас он (id 18804) странно дебафает.

Я нашел точное описание с ПТС файла ai.obj

Тут его полный текст:


class 0 default_tar_forge : default_npc

{

parameter:

  int	 Skill_tar_spite01 = 402522113;

  int	 Skill_tar_spite02 = 402522114;

  int	 Skill_tar_spite03 = 402522115;

  int	 Shot_num_til_dsp = 5;

  int	 TID_LONELY_TOO_LONG = 78001;

  int	 TIME_LONELY_TOO_LONG = 300;

  int	 TID_LOOK_NEIGHBOR = 78002;

  int	 TIME_LOOK_NEIGHBOR = 10;

  int	 babble_mode = 0;

handler:

  EventHandler CREATED()

  {

	myself.i_ai0 = expr =;

	myself.i_ai1 = Shot_num_til_dsp;

	myself::LookNeighbor( LookNeighbor );

	myself::AddTimerEx( TID_LOOK_NEIGHBOR, TIME_LOOK_NEIGHBOR * 1000 );

	myself::AddTimerEx( TID_LONELY_TOO_LONG, TIME_LONELY_TOO_LONG * 1000 );

	myself::BroadcastScriptEvent( BroadcastScriptEvent, myself.sm.id, 3000 );

  }

  EventHandler SEE_CREATURE( creature )

  {

	if( babble_mode == 1 )

	{

	  myself::Say( "?? - ??:" + myself::DistFromMe( creature ) );

	}

	if( creature.is_pc && myself::DistFromMe( creature ) <= 300 &&

		myself.i_ai1 > 0 &&

		myself::Skill_GetConsumeMP( Skill_tar_spite01 ) < myself.sm.mp &&

		myself::Skill_GetConsumeMP( Skill_tar_spite02 ) < myself.sm.mp &&

		myself::Skill_GetConsumeMP( Skill_tar_spite03 ) < myself.sm.mp &&

		myself::Skill_InReuseDelay( Skill_tar_spite01 ) == 0 &&

		myself::Skill_InReuseDelay( Skill_tar_spite02 ) == 0 &&

		myself::Skill_InReuseDelay( Skill_tar_spite03 ) == 0 )

	{

	  if( gg::GetAbnormalLevel( creature, myself::Skill_GetAbnormalType( Skill_tar_spite01 ) ) >= 2 )

	  {

		if( babble_mode == 1 )

		{

		  myself::Say( "?? ?? ?? - 3?? ?? ??" );

		}

		myself::AddUseSkillDesire( creature, Skill_tar_spite03, 0,

								   unary->INTEGER_CONST,

								   unary->INTEGER_CONST );

	  }

	  else if( gg::GetAbnormalLevel( creature, myself::Skill_GetAbnormalType( Skill_tar_spite01 ) ) >= 1 )

	  {

		if( babble_mode == 1 )

		{

		  myself::Say( "?? ?? ?? - 2?? ?? ??" );

		}

		myself::AddUseSkillDesire( creature, Skill_tar_spite02, 0,

								   unary->INTEGER_CONST,

								   unary->INTEGER_CONST );

	  }

	  else

	  {

		if( babble_mode == 1 )

		{

		  myself::Say( "?? ?? ?? - 1?? ?? ??" );

		}

		myself::AddUseSkillDesire( creature, Skill_tar_spite01, 0,

								   unary->INTEGER_CONST,

								   unary->INTEGER_CONST );

	  }

	}

  }

  EventHandler USE_SKILL_FINISHED( target, skill_name_id )

  {

	if( skill_name_id == Skill_tar_spite01 ||

		skill_name_id == Skill_tar_spite02 ||

		skill_name_id == Skill_tar_spite03 )

	{

	  myself.i_ai1 = myself.i_ai1 - 1;

	  if( babble_mode == 1 )

	  {

		myself::Say( "?? ?? ?? - ?? ??:" + myself.i_ai1 );

	  }

	  if( ( myself.i_ai1 <= 0 ||

			myself::Skill_GetConsumeMP( Skill_tar_spite01 ) > myself.sm.mp ) &&

		  myself.i_ai0 == 0 )

	  {

		myself.i_ai0 = expr =;

		myself::Despawn();

	  }

	}

  }

  EventHandler TIMER_FIRED_EX( timer_id, i0 )

  {

	if( timer_id == TID_LOOK_NEIGHBOR )

	{

	  if( babble_mode == 1 )

	  {

		myself::Say( "???" );

	  }

	  myself::LookNeighbor( LookNeighbor );

	  myself::AddTimerEx( TID_LOOK_NEIGHBOR, TIME_LOOK_NEIGHBOR * 1000 );

	}

	else if( timer_id == TID_LONELY_TOO_LONG )

	{

	  if( myself.i_ai1 >= Shot_num_til_dsp && myself.i_ai0 == 0 )

	  {

		if( babble_mode == 1 )

		{

		  myself::Say( "?? ?? - ?? ?? ?? ?? - ???:" );

		}

		myself.i_ai0 = expr =;

		myself::Despawn();

	  }

	  else

	  {

		if( myself.i_ai1 < Shot_num_til_dsp )

		{

		  if( babble_mode == 1 )

		  {

			myself::Say( "?? ?? - ?? ?? ??:" + myself.i_ai1 );

		  }

		  myself.i_ai1 = myself.i_ai1 + 1;

		}

		myself::AddTimerEx( TID_LONELY_TOO_LONG, TIME_LONELY_TOO_LONG * 1000 );

	  }

	}

  }

  EventHandler SCRIPT_EVENT( script_event_arg1, script_event_arg2, c0 )

  {

	if( script_event_arg1 == 78010081 && script_event_arg2 != myself.sm.id &&

		myself.i_ai0 == 0 )

	{

	  if( babble_mode == 1 )

	  {

		myself::Say( "??? ?? ?? ?? - ???:" );

	  }

	  myself.i_ai0 = expr =;

	  myself::Despawn();

	}

	super;

  }

}

Основные моменты: 1. Жук перемещается с интервалом в 25 минут, если ниразу никого не дебафнул. 1 дебаф сокращает время простоя на 5 минут. 2. Если жук сделал 5 дебафов, то он исчезает. 3. Каждые 10 секунд происходит осмотр местности на наличие игрока, в поле зрения 300 range. 4. Вначале проверяется откат скила и мп, затем, если висит :
  • тип дебафа >=2 то используется 3й тип
  • тип дебафа >=1, то используется 2й тип
  • используется 1й тип
Вот описание скила дебафа из ПТС:

skill_begin skill_name = [s_forge_tar_spite_1] /* [타르 스파이트] */ skill_id = 6142 level = 1 operate_type = A2 magic_level = -1 self_effect = {} effect = {{p_speed;{all};-30;per};{p_physical_defence;{all};-10;per};{p_avoid;{all};-10;per}} end_effect = {} is_magic = 1 mp_consume1 = 15 mp_consume2 = 57 cast_range = 300 effective_range = 600 skill_hit_time = 1 skill_cool_time = 0 skill_hit_cancel_time = 0.5 reuse_delay = 30 activate_rate = 90 lv_bonus_rate = 2 basic_property = men abnormal_time = 300 abnormal_lv = 1 abnormal_type = speed_down abnormal_instant = 0 irreplaceable_buff = 0 buff_protect_level = 0 attribute = {attr_none;0} trait = {trait_none} effect_point = -100 target_type = enemy_only affect_scope = single affect_limit = {0;0} next_action = none debuff = 1 ride_state = {@ride_none;@ride_strider;@ride_wyvern;@ride_wolf} multi_class = 0 olympiad_use = 1 skill_end

skill_begin skill_name = [s_forge_tar_spite_2] /* [타르 스파이트] */ skill_id = 6142 level = 2 operate_type = A2 magic_level = -1 self_effect = {} effect = {{p_speed;{all};-60;per};{p_physical_defence;{all};-20;per};{p_avoid;{all};-20;per}} end_effect = {} is_magic = 1 mp_consume1 = 15 mp_consume2 = 57 cast_range = 300 effective_range = 600 skill_hit_time = 1 skill_cool_time = 0 skill_hit_cancel_time = 0.5 reuse_delay = 30 activate_rate = 90 lv_bonus_rate = 2 basic_property = men abnormal_time = 300 abnormal_lv = 2 abnormal_type = speed_down abnormal_instant = 0 irreplaceable_buff = 0 buff_protect_level = 0 attribute = {attr_none;0} trait = {trait_none} effect_point = -100 target_type = enemy_only affect_scope = single affect_limit = {0;0} next_action = none debuff = 1 ride_state = {@ride_none;@ride_strider;@ride_wyvern;@ride_wolf} multi_class = 0 olympiad_use = 1 skill_end

skill_begin skill_name = [s_forge_tar_spite_3] /* [타르 스파이트] */ skill_id = 6142 level = 3 operate_type = A2 magic_level = -1 self_effect = {} effect = {{p_speed;{all};-90;per};{p_physical_defence;{all};-30;per};{p_avoid;{all};-30;per}} end_effect = {} is_magic = 1 mp_consume1 = 15 mp_consume2 = 57 cast_range = 300 effective_range = 600 skill_hit_time = 1 skill_cool_time = 0 skill_hit_cancel_time = 0.5 reuse_delay = 30 activate_rate = 90 lv_bonus_rate = 2 basic_property = men abnormal_time = 300 abnormal_lv = 3 abnormal_type = speed_down abnormal_instant = 0 irreplaceable_buff = 0 buff_protect_level = 0 attribute = {attr_none;0} trait = {trait_none} effect_point = -100 target_type = enemy_only affect_scope = single affect_limit = {0;0} next_action = none debuff = 1 ride_state = {@ride_none;@ride_strider;@ride_wyvern;@ride_wolf} multi_class = 0 olympiad_use = 1 skill_end

Изменено пользователем Steelgar
Ссылка на комментарий
Поделиться на другие сайты

ТОлько желательно это реализовать после http://forum.asterios.tm/index.php?showtopic=185747

т.к. иначе будет очень сложно его обойти, чтобы заагрить всю комнату.

Ссылка на комментарий
Поделиться на другие сайты

Вчера заметил его странное поведение. Вначале он сидел в комнате и дебафал. В конце дня стал 1 раз дебафать и тут же исчезать.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...

Нужны подтверждения актуальности или исправления проблемы.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...
28599М
жук начал дебафать дебаф 3 раза - пока не даст дебаф на 90% скорости бега и 30% защиты (только потом исчезает). раньше сичезал после 1-го дебафа.
 
стало совершенно невозможно бегать изза того что жук не исчезает после 1-го каста
Ссылка на комментарий
Поделиться на другие сайты

Так же если сумон получает дебаф он накладывается на хозяина

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...