Kor-Angar / Evil-Islands

Проклятые Земли
0 stars 0 forks source link

z4q2: Живые камни #1

Open Kor-Angar opened 3 months ago

Kor-Angar commented 3 months ago

Живые камни

Живые камни появились в каменоломне Бабура и мешают работе на ней. Камни заколдовала старая гарпия. Нужно либо убить гарпию, либо уничтожить всех элементалей. Если убить гарпию элементали погибнут.

subobj 1

Найти каменоломню. Каменоломня находится на северо-западе Дальних гор. К ней можно добраться через поселение лесных ящеров, сейчас с ними перемирие, и по дороге не должно быть особых опасностей.

subobj 2

Уничтожить элементалей! Живые камни или элементали камня, как их называет знахарка, находятся в каменоломне. Их необходимо уничтожить для возобновления добычи камня.

subobj 3

Найти гарпию. Гарпия поселилась там, где когда-то циклоп пас своих свинок.

subobj 4

Убить гарпию! Гарпия, заколдовавшая рудник, должна быть убита!

Kor-Angar commented 3 months ago
GlobalVars (
  NULL : object,
  VSS#i#val : object,
  i : object,
  Elementals3 : group,
  Harpy : group,
  NPCHarpy : object 
)

DeclareScript VCheckElementals (  this : object )
DeclareScript VCheckdHarpy (  this : object )

/*
Script VTriger#4#20
(
  if
  (
  )
  then
  (
    KillScript(  ) 
    QStart( "z4q2" ) 
    QFinish(  ) 
  )
)
*/

Script VCheckdHarpy
(
    if
    (
        Any( i, Heroes, IsInArea( 1, GetX( i ) , GetY( i )  )  ) 
        IsAlive( NPCHarpy )
        IsEqual( GSGetVar( 0, "q.z4q2.z4q2.3" ) , 1 ) // миссия запущена
    )
    then
    (
        ConsoleString ( "z4q2 -> VCheckHarpyIsInArea" )
        GSSetVarMax( 0, "q.z4q2.z4q2.3", 2 ) // Найти гарпию. конец  
        GSSetVarMax( 0, "q.z4q2.z4q2.4", 1 ) // Убить гарпию. старт
    )

    if
    (
        IsDead ( NPCHarpy  )
    )
    then
    (
        ConsoleString ( "z4q2 -> VCheckIsDeadHarpy" )
        GSSetVarMax( 0, "q.z4q2.z4q2.4", 2 )    // Подквест: убить гарпию. конец
        //KillUnit( GetObject( 6 )  ) 
        //KillUnit( GetObject( 7 )  ) 
        //KillUnit( GetObject( 8 )  ) 
        For( i, Elementals3 ) 
        (
            KillUnit( i ) 
        )

        KillScript(  ) // выход из цикла "VCheckdHarpy" !!!!
    )
)

Script VCheckElementals
(
    if
    (
        GroupSize( GroupCross( GroupSee( Heroes ) , Harpy )  ) 
        Any( i, Elementals3, IsAlive( i )  )
        IsEqual( GSGetVar( 0, "q.z4q2.z4q2.1" ) , 1 ) // миссия запущена
    )
    then
    (
        ConsoleString ( "z4q2 -> Elementals3 IsAlive" )
        GSSetVarMax( 0, "q.z4q2.z4q2.1", 2 )  // Подквест: Найти каменоломню. конец
        GSSetVarMax( 0, "q.z4q2.z4q2.2", 1 )  // Подквест: уничтожить элементалей. старт
    )

    if
    (
        Every( i, Elementals3, IsDead ( i ) ) 
    )
    then
    (
        ConsoleString ( "z4q2 -> QuestComplete" )
        GSSetVarMax( 0, "q.z4q2.z4q2.2", 2 ) // Подквест: уничтожить элементалей. конец

        GSSetVarMax( 0, "q.z4q2.z4q2", 2 )   // Главыный квест. конец.
        QuestComplete( 0, "z4q2" )

        KillScript(  ) // выход из цикла!!!!
    )
)

WorldScript
(
    ConsoleString ( "z4q2 -> WorldScript" )

    Sleep( 2 ) 

    RemoveUnitFromServer( GetObject( 996872 )  ) 

    NPCHarpy = GetObjectByID( "1045937" ) 
    Guard( NPCHarpy , 87, 243, 9 )

    AddObject( Elementals3, GetObjectByID( "6" )  ) 
    AddObject( Elementals3, GetObjectByID( "7" )  ) 
    AddObject( Elementals3, GetObjectByID( "8" )  ) 
    AddObject( Harpy, NPCHarpy  )

    AddRectToArea( 1, 36, 246, 64, 279 ) 
    AddRectToArea( 2, 82, 234, 98, 258 ) 

    GSSetVarMax( 0, "q.z4q2.z4q2.1", 1 ) // Найти каменоломню. Старт  
    GSSetVarMax( 0, "q.z4q2.z4q2.3", 1 ) // Найти гарпию. Старт  

    VCheckdHarpy( NULL )        // запуск цикличной функции
    VCheckElementals( NULL )    // запуск цикличной функции
)