BOSS Sailren

sandeagle

Последний из атеистов
Участник
Старожил I степени
Сообщения
108
Розыгрыши
0
Репутация
0
Реакции
13
Баллы
880
hey,guyz...I have questions about hunting the Boss Sailren. I have already obtained the item Kazak, then I organized a team, and I am also the leader, but I still can't enter Sailren's lair.Shilen statue gave me a hint...
Привет, ребята... У меня есть вопросы о том, как охотиться на Босса Сайлрена. Я уже получил предмет Казак, затем организовал команду, и я также её лидер, но всё равно не могу войти в логово Сайлрена. Статуя Шилен дала мне подсказку...

"Currently the magic power of Sailren and its followers is very strong. I do not think you can win solely with your own power, especially given how weak the seal stones have become.
My counsel is that you first recover the power to seal and wait 'til Sailren's strength lessens a bit. Then you will have your best chance of entering the nest and defeating this ancient evil."


so i had checked the AI.obj.. "sailren_quest_npc"

Код:
class 1 sailren_quest_npc : default_npc
{
parameter:
  string  fnHi = "statue_of_shilen001.htm";

handler:
  EventHandler CREATED()
  {
    myself.i_ai1 = 0;
    myself.i_ai2 = 0;
    myself.i_ai4 = 0;
    super;
  }

  EventHandler TALKED( talker, party0 )
  {
    myself::ShowPage( talker, fnHi );
  }

  EventHandler MENU_SELECTED( talker, ask, reply, party0, maker0, gg )
  {
    if( ask == 314 )
    {
      switch( reply )
      {
        case 1:
        {
          party0 = myself::GetParty( talker );
          if( myself::IsNullParty( party0 ) == 0 )
          {
            if( myself.i_ai2 == 1 )
            {
              if( myself.i_ai1 == 0 )
              {
                if( myself::Party_GetLeader( talker ) == talker )
                {
                  if( myself::OwnItemCount( talker, @q_gazkh ) >= 1 )
                  {
                    myself::DeleteItem1( talker, @q_gazkh, 1 );
                    myself.i_ai1 = 1;
                    myself::TeleportParty( party0.id, 27549, -6638, -2008, 1000, 0 );
                    maker0 = gg::GetNpcMaker( "rune20_mb2017_01m1" );
                    if( gg::IsNull( maker0 ) == 0 )
                    {
                      gg::SendMakerScriptEvent( maker0, 11053, 0, 0 );
                    }
                    myself::AddTimerEx( 1001, 60 * 1000 );
                    maker0 = gg::GetNpcMaker( "rune20_mb2017_02m1" );
                    if( gg::IsNull( maker0 ) == 0 )
                    {
                      gg::SendMakerScriptEvent( maker0, 11053, 0, 0 );
                    }
                    maker0 = gg::GetNpcMaker( "rune20_mb2017_03m1" );
                    if( gg::IsNull( maker0 ) == 0 )
                    {
                      gg::SendMakerScriptEvent( maker0, 11053, 0, 0 );
                    }
                    maker0 = gg::GetNpcMaker( "rune16_npc2017_13m1" );
                    if( gg::IsNull( maker0 ) == 0 )
                    {
                      gg::SendMakerScriptEvent( maker0, 11048, 0, 0 );
                    }
                  }
                  else
                  {
                    myself::ShowPage( talker, "statue_of_shilen003.htm" );
                  }
                }
                else
                {
                  myself::ShowPage( talker, "statue_of_shilen004.htm" );
                }
              }
              else
              {
                myself::ShowPage( talker, "statue_of_shilen006.htm" );
              }
            }
            else
            {
              myself::ShowPage( talker, "statue_of_shilen005.htm" );
            }
          }
          else
          {
            myself::ShowPage( talker, "statue_of_shilen002.htm" );
          }
          break;
        }
      }
    }
  }

  EventHandler TIMER_FIRED_EX( timer_id, maker0 )
  {
    if( timer_id == 1001 )
    {
      maker0 = gg::GetNpcMaker( "rune20_mb2017_01m1" );
      if( gg::IsNull( maker0 ) == 0 )
      {
        gg::SendMakerScriptEvent( maker0, 1001, 0, 0 );
      }
    }
  }

  EventHandler SCRIPT_EVENT( script_event_arg1, script_event_arg2, party0, i0, i1, i2, c0, maker0 )
  {
    if( script_event_arg1 == 11045 )
    {
      myself.i_ai1 = 0;
      myself.i_ai2 = 0;
    }
    else if( script_event_arg1 == 11041 )
    {
      myself.i_ai2 = 1;
    }
    else if( script_event_arg1 == 11043 )
    {
      myself.i_ai1 = 0;
    }
    else if( script_event_arg1 == 11047 )
    {
      myself.i_ai1 = 1;
    }
    else if( script_event_arg1 == 11050 )
    {
      myself.i_ai1 = 0;
    }
  }

  EventHandler ATTACKED( attacker, damage, skill_name_id )
  {
  }
}


i rly dont know how to set this script_event_arg1==11041,whats that means?
Я правда не знаю, как установить этот script_event_arg1==11041, что это значит?

else if( script_event_arg1 == 11041 )
{
myself.i_ai2 = 1;
}
 
You must be on the Attack Sailren quest.
You need to have the Link Stone obtained from the related questline to enter the lair.
 
You must be on the Attack Sailren quest.
You need to have the Link Stone obtained from the related questline to enter the lair.
got it.its not quest problem.its statue_of_shilen_maker ai problem...when you finished the quest "to enter the lair",need SendScriptEvent...

Код:
class 2 statue_of_shilen_maker : default_maker
handler 2 248    //  ON_SCRIPT_EVENT
    variable_begin
        "script_event_arg1"
        "gg"
        "def0"
        "myself"
        "_choiceN"
        "_code"
        "_from_choice"
    variable_end

    push_event    //  script_event_arg1
    push_const 240
    add
    fetch_i4
    push_reg_sp
    fetch_i
    push_const 11041
    equal
    branch_false L273198
L273199
    push_event    //  def0
    push_const 664
    add
    push_reg_sp
    fetch_i
    push_event    //  myself
    push_const 656
    add
    fetch_i
    push_const 0
    func_call 167837696    //  func[GetSpawnDefine]
    shift_sp -1
    assign
    shift_sp -1
    push_event    //  gg
    push_const 632
    add
    fetch_i
    push_event    //  def0
    push_const 664
    add
    fetch_i
    func_call 218169355    //  func[IsNull]
    shift_sp -1
    push_const 0
    equal
    branch_false L273200
L273201
    push_event    //  def0
    push_const 664
    add
    fetch_i
    push_const 11041
    push_const 1
    push_const 0
    func_call 235077638    //  func[SendScriptEvent]
    shift_sp -3
    shift_sp -1
L273200
    jump L273202
    jump L273203
L273198
    push_reg_sp
    fetch_i
    push_const 11045
    equal
    branch_false L273204
L273203
    push_event    //  def0
    push_const 664
    add
    push_reg_sp
    fetch_i
    push_event    //  myself
    push_const 656
    add
    fetch_i
    push_const 0
    func_call 167837696    //  func[GetSpawnDefine]
    shift_sp -1
    assign
    shift_sp -1
    push_event    //  gg
    push_const 632
    add
    fetch_i
    push_event    //  def0
    push_const 664
    add
    fetch_i
    func_call 218169355    //  func[IsNull]
    shift_sp -1
    push_const 0
    equal
    branch_false L273205
L273206
    push_event    //  def0
    push_const 664
    add
    fetch_i
    push_const 11045
    push_const 1
    push_const 0
    func_call 235077638    //  func[SendScriptEvent]
    shift_sp -3
    shift_sp -1
L273205
    jump L273202
    jump L273207
L273204
    push_reg_sp
    fetch_i
    push_const 11043
    equal
    branch_false L273208
L273207
    push_event    //  def0
    push_const 664
    add
    push_reg_sp
    fetch_i
    push_event    //  myself
    push_const 656
    add
    fetch_i
    push_const 0
    func_call 167837696    //  func[GetSpawnDefine]
    shift_sp -1
    assign
    shift_sp -1
    push_event    //  gg
    push_const 632
    add
    fetch_i
    push_event    //  def0
    push_const 664
    add
    fetch_i
    func_call 218169355    //  func[IsNull]
    shift_sp -1
    push_const 0
    equal
    branch_false L273209
L273210
    push_event    //  def0
    push_const 664
    add
    fetch_i
    push_const 11043
    push_const 1
    push_const 0
    func_call 235077638    //  func[SendScriptEvent]
    shift_sp -3
    shift_sp -1
L273209
    jump L273202
    jump L273211
L273208
    push_reg_sp
    fetch_i
    push_const 11047
    equal
    branch_false L273212
L273211
    push_event    //  def0
    push_const 664
    add
    push_reg_sp
    fetch_i
    push_event    //  myself
    push_const 656
    add
    fetch_i
    push_const 0
    func_call 167837696    //  func[GetSpawnDefine]
    shift_sp -1
    assign
    shift_sp -1
    push_event    //  gg
    push_const 632
    add
    fetch_i
    push_event    //  def0
    push_const 664
    add
    fetch_i
    func_call 218169355    //  func[IsNull]
    shift_sp -1
    push_const 0
    equal
    branch_false L273213
L273214
    push_event    //  def0
    push_const 664
    add
    fetch_i
    push_const 11047
    push_const 1
    push_const 0
    func_call 235077638    //  func[SendScriptEvent]
    shift_sp -3
    shift_sp -1
L273213
    jump L273202
    jump L273215
L273212
    push_reg_sp
    fetch_i
    push_const 11050
    equal
    branch_false L273216
L273215
    push_event    //  def0
    push_const 664
    add
    push_reg_sp
    fetch_i
    push_event    //  myself
    push_const 656
    add
    fetch_i
    push_const 0
    func_call 167837696    //  func[GetSpawnDefine]
    shift_sp -1
    assign
    shift_sp -1
    push_event    //  gg
    push_const 632
    add
    fetch_i
    push_event    //  def0
    push_const 664
    add
    fetch_i
    func_call 218169355    //  func[IsNull]
    shift_sp -1
    push_const 0
    equal
    branch_false L273217
L273218
    push_event    //  def0
    push_const 664
    add
    fetch_i
    push_const 11050
    push_const 1
    push_const 0
    func_call 235077638    //  func[SendScriptEvent]
    shift_sp -3
    shift_sp -1
L273217
    jump L273202
    jump L273219
L273216
L273219
L273202
    shift_sp -1
    call_super
handler_end

class_end
 
is from advext or vanganth scripts?
 
is from advext or vanganth scripts?
you can find two version statue_of_shilen_maker in Vanganth and advext...but i guess Vanganth version is currect...just need fix npcmaker in npcpos.

this is Vanganths :
Код:
class 2 statue_of_shilen_maker : default_maker
handler 2 248    //  ON_SCRIPT_EVENT
    variable_begin
        "script_event_arg1"
        "script_event_arg2"
        "script_event_arg3"
        "def0"
        "i0"
        "i1"
        "myself"
        "_choiceN"
        "_code"
        "_from_choice"
    variable_end

    push_event    //  script_event_arg1
    push_const 240
    add
    fetch_i4
    push_reg_sp
    fetch_i
    push_const 11041
    equal
    branch_false L2513
L2512
    push_event    //  def0
    push_const 664
    add
    push_reg_sp
    fetch_i
    push_event    //  myself
    push_const 656
    add
    fetch_i
    push_const 0
    func_call 167837696    //  func[GetSpawnDefine]
    shift_sp -1
    assign
    shift_sp -1
    push_event    //  gg
    push_const 632
    add
    fetch_i
    push_event    //  def0
    push_const 664
    add
    fetch_i
    func_call 218169355    //  func[IsNull]
    shift_sp -1
    push_const 0
    equal
    branch_false L2515
L2514
    push_event    //  def0
    push_const 664
    add
    fetch_i
    push_const 11041
    push_const 1
    push_const 0
    func_call 235077638    //  func[SendScriptEvent]
    shift_sp -3
    shift_sp -1
L2515
    jump L2511
    jump L2516
L2513
    push_reg_sp
    fetch_i
    push_const 11045
    equal
    branch_false L2517
L2516
    push_event    //  def0
    push_const 664
    add
    push_reg_sp
    fetch_i
    push_event    //  myself
    push_const 656
    add
    fetch_i
    push_const 0
    func_call 167837696    //  func[GetSpawnDefine]
    shift_sp -1
    assign
    shift_sp -1
    push_event    //  gg
    push_const 632
    add
    fetch_i
    push_event    //  def0
    push_const 664
    add
    fetch_i
    func_call 218169355    //  func[IsNull]
    shift_sp -1
    push_const 0
    equal
    branch_false L2519
L2518
    push_event    //  def0
    push_const 664
    add
    fetch_i
    push_const 11045
    push_const 1
    push_const 0
    func_call 235077638    //  func[SendScriptEvent]
    shift_sp -3
    shift_sp -1
L2519
    jump L2511
    jump L2520
L2517
    push_reg_sp
    fetch_i
    push_const 11043
    equal
    branch_false L2521
L2520
    push_event    //  def0
    push_const 664
    add
    push_reg_sp
    fetch_i
    push_event    //  myself
    push_const 656
    add
    fetch_i
    push_const 0
    func_call 167837696    //  func[GetSpawnDefine]
    shift_sp -1
    assign
    shift_sp -1
    push_event    //  gg
    push_const 632
    add
    fetch_i
    push_event    //  def0
    push_const 664
    add
    fetch_i
    func_call 218169355    //  func[IsNull]
    shift_sp -1
    push_const 0
    equal
    branch_false L2523
L2522
    push_event    //  def0
    push_const 664
    add
    fetch_i
    push_const 11043
    push_const 1
    push_const 0
    func_call 235077638    //  func[SendScriptEvent]
    shift_sp -3
    shift_sp -1
L2523
    jump L2511
    jump L2524
L2521
    push_reg_sp
    fetch_i
    push_const 11047
    equal
    branch_false L2525
L2524
    push_event    //  def0
    push_const 664
    add
    push_reg_sp
    fetch_i
    push_event    //  myself
    push_const 656
    add
    fetch_i
    push_const 0
    func_call 167837696    //  func[GetSpawnDefine]
    shift_sp -1
    assign
    shift_sp -1
    push_event    //  gg
    push_const 632
    add
    fetch_i
    push_event    //  def0
    push_const 664
    add
    fetch_i
    func_call 218169355    //  func[IsNull]
    shift_sp -1
    push_const 0
    equal
    branch_false L2527
L2526
    push_event    //  def0
    push_const 664
    add
    fetch_i
    push_const 11047
    push_const 1
    push_const 0
    func_call 235077638    //  func[SendScriptEvent]
    shift_sp -3
    shift_sp -1
L2527
    jump L2511
    jump L2528
L2525
    push_reg_sp
    fetch_i
    push_const 11050
    equal
    branch_false L2529
L2528
    push_event    //  def0
    push_const 664
    add
    push_reg_sp
    fetch_i
    push_event    //  myself
    push_const 656
    add
    fetch_i
    push_const 0
    func_call 167837696    //  func[GetSpawnDefine]
    shift_sp -1
    assign
    shift_sp -1
    push_event    //  gg
    push_const 632
    add
    fetch_i
    push_event    //  def0
    push_const 664
    add
    fetch_i
    func_call 218169355    //  func[IsNull]
    shift_sp -1
    push_const 0
    equal
    branch_false L2531
L2530
    push_event    //  def0
    push_const 664
    add
    fetch_i
    push_const 11050
    push_const 1
    push_const 0
    func_call 235077638    //  func[SendScriptEvent]
    shift_sp -3
    shift_sp -1
L2531
    jump L2511
    jump L2532
L2529
L2532
L2511
    shift_sp -1
    call_super
handler_end

class_end
 
Привет, ребята... У меня есть вопросы по поводу охоты на босса Сайлрен. Я уже получил предмет Казак, собрал команду и стал её лидером, но всё равно не могу попасть в логово Сайлрен. Статуя Шилен дала мне подсказку...
Привет, ребята... У меня есть вопросы о том, как охотиться на Босса Сайлрена. Я уже получил предмет Казак, затем организовал команду, и я также её лидер, но всё равно не могу войти в логово Сайлрена. Статуя Шилен дала мне подсказку...

«В настоящее время магическая сила Сайлрена и его последователей очень велика. Я не думаю, что вы сможете победить, полагаясь только на собственные силы, особенно учитывая, насколько ослабли печати».
Мой совет: сначала восстановите способность запечатывать и подождите, пока сила Сайлрена немного ослабнет. Тогда у вас будет наилучший шанс проникнуть в гнездо и победить это древнее зло.


Итак, я проверил файл AI.obj.. "sailren_quest_npc"

Код:
class 1 sailren_quest_npc : default_npc
{
параметр:
  string fnHi = "statue_of_shilen001.htm";

обработчик:
  EventHandler CREATED()
  {
    myself.i_ai1 = 0;
    myself.i_ai2 = 0;
    myself.i_ai4 = 0;
    супер;
  }

  EventHandler TALKED( talker, party0 )
  {
    myself::ShowPage( talker, fnHi );
  }

  EventHandler MENU_SELECTED( talker, ask, reply, party0, maker0, gg )
  {
    если( ask == 314 )
    {
      switch( reply )
      {
        случай 1:
        {
          party0 = myself::GetParty( talker );
          if( myself::IsNullParty( party0 ) == 0 )
          {
            если( myself.i_ai2 == 1 )
            {
              если( myself.i_ai1 == 0 )
              {
                if( myself::Party_GetLeader( talker ) == talker )
                {
                  if( myself::OwnItemCount( talker, @q_gazkh ) >= 1 )
                  {
                    myself::DeleteItem1( talker, @q_gazkh, 1 );
                    myself.i_ai1 = 1;
                    myself::TeleportParty( party0.id, 27549, -6638, -2008, 1000, 0 );
                    maker0 = gg::GetNpcMaker( "rune20_mb2017_01m1" );
                    if( gg::IsNull( maker0 ) == 0 )
                    {
                      gg::SendMakerScriptEvent( maker0, 11053, 0, 0 );
                    }
                    myself::AddTimerEx( 1001, 60 * 1000 );
                    maker0 = gg::GetNpcMaker( "rune20_mb2017_02m1" );
                    if( gg::IsNull( maker0 ) == 0 )
                    {
                      gg::SendMakerScriptEvent( maker0, 11053, 0, 0 );
                    }
                    maker0 = gg::GetNpcMaker( "rune20_mb2017_03m1" );
                    if( gg::IsNull( maker0 ) == 0 )
                    {
                      gg::SendMakerScriptEvent( maker0, 11053, 0, 0 );
                    }
                    maker0 = gg::GetNpcMaker( "rune16_npc2017_13m1" );
                    if( gg::IsNull( maker0 ) == 0 )
                    {
                      gg::SendMakerScriptEvent( maker0, 11048, 0, 0 );
                    }
                  }
                  еще
                  {
                    myself::ShowPage( talker, "statue_of_shilen003.htm" );
                  }
                }
                еще
                {
                  myself::ShowPage( talker, "statue_of_shilen004.htm" );
                }
              }
              еще
              {
                myself::ShowPage( talker, "statue_of_shilen006.htm" );
              }
            }
            еще
            {
              myself::ShowPage( talker, "statue_of_shilen005.htm" );
            }
          }
          еще
          {
            myself::ShowPage( talker, "statue_of_shilen002.htm" );
          }
          перерыв;
        }
      }
    }
  }

  EventHandler TIMER_FIRED_EX( timer_id, maker0 )
  {
    если (timer_id == 1001)
    {
      maker0 = gg::GetNpcMaker( "rune20_mb2017_01m1" );
      if( gg::IsNull( maker0 ) == 0 )
      {
        gg::SendMakerScriptEvent( maker0, 1001, 0, 0 );
      }
    }
  }

  EventHandler SCRIPT_EVENT( script_event_arg1, script_event_arg2, party0, i0, i1, i2, c0, maker0 )
  {
    if( script_event_arg1 == 11045 )
    {
      myself.i_ai1 = 0;
      myself.i_ai2 = 0;
    }
    иначе, если (script_event_arg1 == 11041)
    {
      myself.i_ai2 = 1;
    }
    иначе, если (script_event_arg1 == 11043)
    {
      myself.i_ai1 = 0;
    }
    else if( script_event_arg1 == 11047 )
    {
      myself.i_ai1 = 1;
    }
    else if( script_event_arg1 == 11050 )
    {
      myself.i_ai1 = 0;
    }
  }

  EventHandler ATTACKED( attacker, damage, skill_name_id )
  {
  }
}
[/КОД]


Я действительно не знаю, как установить script_event_arg1==11041, что это значит?
Я правда не знаю, как установить этот script_event_arg1==11041, что это значит?

    иначе, если (script_event_arg1 == 11041)
    {
      myself.i_ai2 = 1;
    }
[/QUOTE]
всем привет, я нуб в плане с+ и как там птс, вас не с мутило одно деталь в коде.что все проверки не так 
вы не смотрите на это код 
 EventHandler SCRIPT_EVENT( script_event_arg1, script_event_arg2, party0, i0, i1, i2, c0, maker0 )
  {
    if( script_event_arg1 == 11045 )
    {
      myself.i_ai1 = 0;
      myself.i_ai2 = 0;
    }
    иначе, если (script_event_arg1 == 11041)
    {
      myself.i_ai2 = 1;
    }
    иначе, если (script_event_arg1 == 11043)
    {
      myself.i_ai1 = 0;
    }
    else if( script_event_arg1 == 11047 )
    {
      myself.i_ai1 = 1;
    }
    else if( script_event_arg1 == 11050 )
    {
      myself.i_ai1 = 0;
    }
  }
и смотрим на этом коде 
[CODE=cpp]Обработчик событий TIMER_FIRED_EX( timer_id, maker0 )

  {

    если (timer_id == 1001)

    {

      maker0 = gg::GetNpcMaker( "rune20_mb2017_01m1" );

      if( gg::IsNull( maker0 ) == 0 )

      {

        gg::SendMakerScriptEvent( maker0, 1001, 0, 0 );

      }

    }

  }[/КОД]
 
Decompile both versions and compare them.
 
Назад
Сверху Снизу