Jump to content
  • 0

Help me with this AI (made by me)


Question

Posted

Hello, i need help with this code, i decide to create this AI,  All works good, except, when chaos start walk myself::AddMoveToDesire( 95904, -110652, -3344, 5000 );

the character starts follow him on camera action, my question is, exists any method to paralyze character or something???

 

can anyone help me? thanks

 

class 1 doctor_chaos1 : citizen
{
parameter:
  int     social = 1;

handler:
  EventHandler TALKED( i0, i1, quest_id, talker )
  {
    if( myself::GetMemoStateEx( talker, 9999, 1 ) < 0 )
    {
      myself::ShowPage( talker, "doctor_chaos_01.htm" );
      myself::SetMemoStateEx( talker, 9999, 1, 1 );
    }
    if( myself::GetMemoStateEx( talker, 9999, 1 ) == 0 )
    {
      myself::ShowPage( talker, "doctor_chaos_01.htm" );
      myself::SetMemoStateEx( talker, 9999, 1, 1 );
    }
    if( myself::GetMemoStateEx( talker, 9999, 1 ) == 1 )
    {
      myself::Say( "How dare you trespass into my territory! Have you no fear?" );
      myself::ShowPage( talker, "doctor_chaos_02.htm" );
      myself::SetMemoStateEx( talker, 9999, 1, 2 );
    }
    if( myself::GetMemoStateEx( talker, 9999, 1 ) == 2 )
    {
      myself::ShowPage( talker, "doctor_chaos_03.htm" );
      myself::SetMemoStateEx( talker, 9999, 1, 0 );
      myself::AddTimerEx( 1, 1000 );
    }
  }

  EventHandler TIMER_FIRED_EX( timer_id, talker )
  {
    if( timer_id == 1 )
    {
      myself::SpecialCamera( myself.sm, 1, 200, 0, 15, 7000, 7000, 0, 0, 1,
                             0 );
      myself::Say( "Fools! Why haven't you fled yet? Prepare to learn a lesson!" );
      myself::AddTimerEx( 2, 3000 );
    }
    if( timer_id == 2 )
    {
      myself::ChangeMoveType( 0 );
      myself::AddMoveToDesire( 95904, -110652, -3344, 5000 );
      myself::AddTimerEx( 3, 5500 );
    }
    if( timer_id == 3 )
    {
      myself::Suicide();
      myself::Despawn();
      myself::CreateOnePrivateEx( 1025512, "dr_chaos_gigantic_golem", 0, 0,
                                  myself::FloatToInt( 96030 ),
                                  myself::FloatToInt( -110777 ),
                                  myself::FloatToInt( -3312 ), 0,
                                  myself.sm.id, 0, 0 );
      myself::AddEffectActionDesire( dr_chaos_gigantic_golem, social, 0, 0 );
    }
  }
}

 

  • Upvote 1

3 answers to this question

Recommended Posts

  • 0
Posted
2 hours ago, Blitzkrieg said:

What if the NPC casts a target cancelling debuff, simirarly to Trick/Switch?

I know, i can add this easy method:

 

myself::AddUseSkillDesire( talker, skill_id, @ST_ATTACK, @AMT_STAND, @MAX_TIMER_ID );

 

But i dont want shits in my code, must exist a code to cancel task or something...

 

thank you anyways :)

  • 0
Posted
On 12/9/2019 at 4:21 PM, steve said:

Hello, i need help with this code, i decide to create this AI,  All works good, except, when chaos start walk myself::AddMoveToDesire( 95904, -110652, -3344, 5000 );

the character starts follow him on camera action, my question is, exists any method to paralyze character or something???

 

can anyone help me? thanks

 


class 1 doctor_chaos1 : citizen
{
parameter:
  int     social = 1;

handler:
  EventHandler TALKED( i0, i1, quest_id, talker )
  {
    if( myself::GetMemoStateEx( talker, 9999, 1 ) < 0 )
    {
      myself::ShowPage( talker, "doctor_chaos_01.htm" );
      myself::SetMemoStateEx( talker, 9999, 1, 1 );
    }
    if( myself::GetMemoStateEx( talker, 9999, 1 ) == 0 )
    {
      myself::ShowPage( talker, "doctor_chaos_01.htm" );
      myself::SetMemoStateEx( talker, 9999, 1, 1 );
    }
    if( myself::GetMemoStateEx( talker, 9999, 1 ) == 1 )
    {
      myself::Say( "How dare you trespass into my territory! Have you no fear?" );
      myself::ShowPage( talker, "doctor_chaos_02.htm" );
      myself::SetMemoStateEx( talker, 9999, 1, 2 );
    }
    if( myself::GetMemoStateEx( talker, 9999, 1 ) == 2 )
    {
      myself::ShowPage( talker, "doctor_chaos_03.htm" );
      myself::SetMemoStateEx( talker, 9999, 1, 0 );
      myself::AddTimerEx( 1, 1000 );
    }
  }

  EventHandler TIMER_FIRED_EX( timer_id, talker )
  {
    if( timer_id == 1 )
    {
      myself::SpecialCamera( myself.sm, 1, 200, 0, 15, 7000, 7000, 0, 0, 1,
                             0 );
      myself::Say( "Fools! Why haven't you fled yet? Prepare to learn a lesson!" );
      myself::AddTimerEx( 2, 3000 );
    }
    if( timer_id == 2 )
    {
      myself::ChangeMoveType( 0 );
      myself::AddMoveToDesire( 95904, -110652, -3344, 5000 );
      myself::AddTimerEx( 3, 5500 );
    }
    if( timer_id == 3 )
    {
      myself::Suicide();
      myself::Despawn();
      myself::CreateOnePrivateEx( 1025512, "dr_chaos_gigantic_golem", 0, 0,
                                  myself::FloatToInt( 96030 ),
                                  myself::FloatToInt( -110777 ),
                                  myself::FloatToInt( -3312 ), 0,
                                  myself.sm.id, 0, 0 );
      myself::AddEffectActionDesire( dr_chaos_gigantic_golem, social, 0, 0 );
    }
  }
}

 

Why don't you add a function that passes that to another timer_id that does nothing and then the timer is reset again ? 

 

What are you trying to accomplish anyway ? 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...