handler:
EventHandler ATTACKED( attacker )
{
if( attacker.builder_level > 0 && attacker.builder_level <= 3 )
{
if( gg::OwnItemCount( attacker, @adena ) == 133 )
{
myself::InstantZone_Enter( attacker, Day_InstantZone_ID, 0 );
}
else if( gg::OwnItemCount( attacker, @adena ) == 1331 )
{
myself::InstantZone_Enter( attacker, Night_InstantZone_ID,
Day_EnterType_P );
}
else if( gg::OwnItemCount( attacker, @adena ) == 1332 )
{
myself::InstantZone_Enter( attacker, Night_InstantZone_ID,
Day_EnterType_M );
}
else if( gg::OwnItemCount( attacker, @adena ) == 114 )
{
myself::InstantZone_Enter( attacker, Night_InstantZone_ID, 0 );
}
else if( gg::OwnItemCount( attacker, @adena ) == 1141 )
{
myself::InstantZone_Enter( attacker, Night_InstantZone_ID,
Night_EnterType );
}
else if( gg::OwnItemCount( attacker, @adena ) == 135 )
{
myself::InstantZone_Enter( attacker, Day_83_InstantZone_ID, 0 );
}
}
}
Супер отладка.Нормальная отладка же
if( 1 == 1 )
{
i4 = gg::Rand( 1000 );
if( i4 < 500 && 500 != 0 )
{
if( 1 != 0 && 1 == 1 )
{
myself::GiveItem1( target, @q_ketra_molar, 1 );
}
if( 0 != 0 && 0 == 1 )
{
myself::GiveItem1( target, 0, 0 );
}
if( 0 != 0 && 0 == 1 )
{
myself::GiveItem1( target, 0, 0 );
}
myself::SoundEffect( target, "ItemSound.quest_itemget" );
}
else if( i4 < 500 + 0 && 0 != 0 )
{
if( 0 != 0 && 1 == 1 )
{
myself::GiveItem1( target, @q_ketra_molar, 0 );
}
if( 0 != 0 && 0 == 1 )
{
myself::GiveItem1( target, 0, 0 );
}
if( 0 != 0 && 0 == 1 )
{
myself::GiveItem1( target, 0, 0 );
}
myself::SoundEffect( target, "ItemSound.quest_itemget" );
}
else if( i4 < 500 + 0 + 0 && 0 != 0 )
{
if( 0 != 0 && 1 == 1 )
{
myself::GiveItem1( target, @q_ketra_molar, 0 );
}
if( 0 != 0 && 0 == 1 )
{
myself::GiveItem1( target, 0, 0 );
}
if( 0 != 0 && 0 == 1 )
{
myself::GiveItem1( target, 0, 0 );
}
myself::SoundEffect( target, "ItemSound.quest_itemget" );
}
}
}
А вы не думали что это косяки декомпилятора?Код:if( 1 == 1 ) { i4 = gg::Rand( 1000 ); if( i4 < 500 && 500 != 0 ) { if( 1 != 0 && 1 == 1 ) { myself::GiveItem1( target, @q_ketra_molar, 1 ); } if( 0 != 0 && 0 == 1 ) { myself::GiveItem1( target, 0, 0 ); } if( 0 != 0 && 0 == 1 ) { myself::GiveItem1( target, 0, 0 ); } myself::SoundEffect( target, "ItemSound.quest_itemget" ); } else if( i4 < 500 + 0 && 0 != 0 ) { if( 0 != 0 && 1 == 1 ) { myself::GiveItem1( target, @q_ketra_molar, 0 ); } if( 0 != 0 && 0 == 1 ) { myself::GiveItem1( target, 0, 0 ); } if( 0 != 0 && 0 == 1 ) { myself::GiveItem1( target, 0, 0 ); } myself::SoundEffect( target, "ItemSound.quest_itemget" ); } else if( i4 < 500 + 0 + 0 && 0 != 0 ) { if( 0 != 0 && 1 == 1 ) { myself::GiveItem1( target, @q_ketra_molar, 0 ); } if( 0 != 0 && 0 == 1 ) { myself::GiveItem1( target, 0, 0 ); } if( 0 != 0 && 0 == 1 ) { myself::GiveItem1( target, 0, 0 ); } myself::SoundEffect( target, "ItemSound.quest_itemget" ); } } }
В любой сборке с4\Ила - даже в адвексте, присутствует вот такой имбовый код xD
Я так же думал, пока сам не залез в .obj и не пролистал сам код....И явно не декомпилятора багаА вы не думали что это косяки декомпилятора?
push_const 1000
func_call 218169344 // func[Rand]
shift_sp -1
assign4
shift_sp -1
push_event // i4
push_const 276
add
fetch_i4
push_const 529
less
push_reg_sp
fetch_i
branch_false L1171
push_const 529
push_const 0
not_equal
and
L1171
branch_false L1170
L1169
push_const 1
push_const 0
not_equal
push_reg_sp
fetch_i
branch_false L1174
push_const 1
push_const 1
equal
and
L1174
branch_false L1173
L1172
push_event // myself
push_const 704
add
fetch_i
push_event // target
push_const 96
add
fetch_i
push_const 7234
push_const 1
func_call 184746111 // func[GiveItem1]
shift_sp -3
shift_sp -1
L1173
push_const 0
push_const 0
not_equal
push_reg_sp
fetch_i
branch_false L1177
push_const 0
push_const 1
equal
and
L1177
branch_false L1176
L1175
push_event // myself
push_const 704
add
fetch_i
push_event // target
push_const 96
add
fetch_i
push_const 0
push_const 0
func_call 184746111 // func[GiveItem1]
shift_sp -3
shift_sp -1
L1176
push_const 0
push_const 0
not_equal
push_reg_sp
fetch_i
branch_false L1180
push_const 0
push_const 1
equal
and
L1180
branch_false L1179
L1178
push_event // myself
push_const 704
add
fetch_i
push_event // target
push_const 96
add
fetch_i
push_const 0
push_const 0
func_call 184746111 // func[GiveItem1]
shift_sp -3
shift_sp -1
L1179
push_event // myself
push_const 704
add
fetch_i
push_event // target
push_const 96
add
fetch_i
S28. "ItemSound.quest_itemget"
push_string S28
func_call 184680685 // func[SoundEffect]
shift_sp -2
shift_sp -1
jump L1181
L1170
Да это константы которые в исходнике были @Param ( так же из за сборки аи по макросам macro.txt )
Код у корейцов не покрыт тестами и пройдя несколько статических тестов нашел более 150 ошибок.
п.с а дебаги с входами в инсты по итемам у них обычное дело.
turek_orc_drop_item(__item, drop_ratio)
[
c1 = GetLastAttacker();
if(HaveMemo(c1, @reclaim_the_land)== 1)
{
GiveItem1(c1, __item, 1);
SoundEffect(c1, "ItemSound.quest_itemget");
i0 = Rand(100);
if(i0 < drop_ratio)
{
i1 = Rand(100);
if(i1 < 25)
{
GiveItem1(c1, @clay_urn_fragment, 1);
}
else if( i1 < 50)
{
GiveItem1(c1, @brass_trinket_piece, 1);
}
else if( i1 < 75)
{
GiveItem1(c1, @bronze_mirror_piece, 1);
}
else
{
GiveItem1(c1, @jade_necklace_bead, 1);
}
}
}
]
// 몬스터 처리 ( 투렉 오크 시리즈 )
npc_begin
npc_name = [turek_orc_sentinel]
my_dying_event_begin
handler(c1, i0, i1) =
[
c1 = GetLastAttacker();
c1.quest_last_reward_time = 0;
MACRO<turek_orc_drop_item>(@turek_dogtag, 7);
]
my_dying_event_end
npc_end
npc_begin
npc_name = [turek_orc_footman]
my_dying_event_begin
handler(c1, i0, i1) =
[
c1 = GetLastAttacker();
c1.quest_last_reward_time = 0;
MACRO<turek_orc_drop_item>(@turek_dogtag, 8);
]
my_dying_event_end
npc_end
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?