Steelgar Опубликовано 21 октября, 2011 Поделиться Опубликовано 21 октября, 2011 (изменено) Ревизия: 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 Изменено 27 октября, 2011 пользователем Steelgar 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Steelgar Опубликовано 21 октября, 2011 Автор Поделиться Опубликовано 21 октября, 2011 ТОлько желательно это реализовать после http://forum.asterios.tm/index.php?showtopic=185747 т.к. иначе будет очень сложно его обойти, чтобы заагрить всю комнату. 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Steelgar Опубликовано 23 октября, 2011 Автор Поделиться Опубликовано 23 октября, 2011 Вчера заметил его странное поведение. Вначале он сидел в комнате и дебафал. В конце дня стал 1 раз дебафать и тут же исчезать. 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Xandir Опубликовано 22 июля, 2013 Поделиться Опубликовано 22 июля, 2013 Нужны подтверждения актуальности или исправления проблемы. 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
iLordSion Опубликовано 2 декабря, 2014 Поделиться Опубликовано 2 декабря, 2014 28599М жук начал дебафать дебаф 3 раза - пока не даст дебаф на 90% скорости бега и 30% защиты (только потом исчезает). раньше сичезал после 1-го дебафа. стало совершенно невозможно бегать изза того что жук не исчезает после 1-го каста 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
йаЗгуЩеНкО Опубликовано 3 декабря, 2014 Поделиться Опубликовано 3 декабря, 2014 Так же если сумон получает дебаф он накладывается на хозяина 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.