Skip to content
La2Base
Home
DownloadsWikiForumFAQ
Search
ruen
Sign up Login
HomeFilesWikiLogin
  • Home
  • Downloads
  • Wiki
  • FAQ
  • Contact Us
  • About
  • Rules
  • Privacy
  • Terms of Service

© 2026 la2base.com · All rights reserved

ruen
Forum/Серверные файлы/Объеденить несколько скриптов Ai
Search

Объеденить несколько скриптов Ai

4 replies75 viewsCurrently viewing: 1
Антоха
Антоха

User

Бывалый

Posts: 289

На форуме с: 11/24/2008

Репутация: +333

Рейтинг: 0

· 02/23/2010, 07:34 AM

Вопрос:

Я хочу добавить в кота (test_server_helper) получение сабкласса, продажу нубла и проф менеджера
Как правильно объединить несколько скриптов в один?


Скрипт продажи нублеса:
Раскрывающийся текст
Код
class nobless_npc : default_npc
{
parameter:
    int    Itemn = 1870;
    int    Itemn1 = 1875;
    int    Itemn2 = 1874;
    int    Amount = 1;
    int    Amount1 = 1;
    int    Amount2 = 1;

handler:
    EventHandler (talker)
    {
        if( talker.karma > 0 )
        {
            myself->ShowPage(talker,   "nobless_002.htm");
        }
        else if( talker.level <= 74 )
        {
            myself->ShowPage(talker,   "nobless_007.htm");
        }
        else if( talker.subjob_id == 0 )
        {
            myself->ShowPage(talker,   "nobless_006.htm");
        }
        else if( talker.nobless_type == 1 )
        {
            myself->ShowPage(talker,   "nobless_008.htm");
        }
        else
        {
            myself->ShowPage(talker,   "nobless_001.htm");
        }
    }

    EventHandler (talker,ask)
    {
        if( ask == 644 && ( myself->OwnItemCount(talker,Itemn) >= Amount && ( myself->OwnItemCount(talker,Itemn1) >= Amount1 && myself->OwnItemCount(talker,Itemn2) >= Amount2 ) ) )
        {
            myself->DeleteItem1(talker,Itemn,Amount);
            myself->DeleteItem1(talker,Itemn1,Amount1);
            myself->DeleteItem1(talker,Itemn2,Amount2);
            myself->GiveItem1(talker,7694,1);
            myself->SoundEffect(talker,   "ItemSound.quest_finish");
            myself->SetNobless(talker);
            myself->ShowPage(talker,   "nobless_005.htm");
        }
        else
        {
            myself->ShowPage(talker,   "nobless_003.htm");
        }
    }

}



Скрипт продажи профессий:
Раскрывающийся текст
Код
class 1 proffer : citizen
{

handler:
EventHandler TALKED(talker) {
if (talker.occupation == 0) { myself::ShowPage(talker,"proffer_0.htm"); }
if (talker.occupation == 1) { myself::ShowPage(talker,"proffer_1.htm"); }
if (talker.occupation == 2) { myself::ShowPage(talker,"proffer_2.htm"); }
if (talker.occupation == 3) { myself::ShowPage(talker,"proffer_3.htm"); }
if (talker.occupation == 4) { myself::ShowPage(talker,"proffer_4.htm"); }
if (talker.occupation == 5) { myself::ShowPage(talker,"proffer_5.htm"); }
if (talker.occupation == 6) { myself::ShowPage(talker,"proffer_6.htm"); }
if (talker.occupation == 7) { myself::ShowPage(talker,"proffer_7.htm"); }
if (talker.occupation == 8) { myself::ShowPage(talker,"proffer_8.htm"); }
if (talker.occupation == 9) { myself::ShowPage(talker,"proffer_9.htm"); }
if (talker.occupation == 10) { myself::ShowPage(talker,"proffer_10.htm"); }
if (talker.occupation == 11) { myself::ShowPage(talker,"proffer_11.htm"); }
if (talker.occupation == 12) { myself::ShowPage(talker,"proffer_12.htm"); }
if (talker.occupation == 13) { myself::ShowPage(talker,"proffer_13.htm"); }
if (talker.occupation == 14) { myself::ShowPage(talker,"proffer_14.htm"); }
if (talker.occupation == 15) { myself::ShowPage(talker,"proffer_15.htm"); }
if (talker.occupation == 16) { myself::ShowPage(talker,"proffer_16.htm"); }
if (talker.occupation == 17) { myself::ShowPage(talker,"proffer_17.htm"); }
if (talker.occupation == 18) { myself::ShowPage(talker,"proffer_18.htm"); }
if (talker.occupation == 19) { myself::ShowPage(talker,"proffer_19.htm"); }
if (talker.occupation == 20) { myself::ShowPage(talker,"proffer_20.htm"); }
if (talker.occupation == 21) { myself::ShowPage(talker,"proffer_21.htm"); }
if (talker.occupation == 22) { myself::ShowPage(talker,"proffer_22.htm"); }
if (talker.occupation == 23) { myself::ShowPage(talker,"proffer_23.htm"); }
if (talker.occupation == 24) { myself::ShowPage(talker,"proffer_24.htm"); }
if (talker.occupation == 25) { myself::ShowPage(talker,"proffer_25.htm"); }
if (talker.occupation == 26) { myself::ShowPage(talker,"proffer_26.htm"); }
if (talker.occupation == 27) { myself::ShowPage(talker,"proffer_27.htm"); }
if (talker.occupation == 28) { myself::ShowPage(talker,"proffer_28.htm"); }
if (talker.occupation == 29) { myself::ShowPage(talker,"proffer_29.htm"); }
if (talker.occupation == 30) { myself::ShowPage(talker,"proffer_30.htm"); }
if (talker.occupation == 31) { myself::ShowPage(talker,"proffer_31.htm"); }
if (talker.occupation == 32) { myself::ShowPage(talker,"proffer_32.htm"); }
if (talker.occupation == 33) { myself::ShowPage(talker,"proffer_33.htm"); }
if (talker.occupation == 34) { myself::ShowPage(talker,"proffer_34.htm"); }
if (talker.occupation == 35) { myself::ShowPage(talker,"proffer_35.htm"); }
if (talker.occupation == 36) { myself::ShowPage(talker,"proffer_36.htm"); }
if (talker.occupation == 37) { myself::ShowPage(talker,"proffer_37.htm"); }
if (talker.occupation == 38) { myself::ShowPage(talker,"proffer_38.htm"); }
if (talker.occupation == 39) { myself::ShowPage(talker,"proffer_39.htm"); }
if (talker.occupation == 40) { myself::ShowPage(talker,"proffer_40.htm"); }
if (talker.occupation == 41) { myself::ShowPage(talker,"proffer_41.htm"); }
if (talker.occupation == 42) { myself::ShowPage(talker,"proffer_42.htm"); }
if (talker.occupation == 43) { myself::ShowPage(talker,"proffer_43.htm"); }
if (talker.occupation == 44) { myself::ShowPage(talker,"proffer_44.htm"); }
if (talker.occupation == 45) { myself::ShowPage(talker,"proffer_45.htm"); }
if (talker.occupation == 46) { myself::ShowPage(talker,"proffer_46.htm"); }
if (talker.occupation == 47) { myself::ShowPage(talker,"proffer_47.htm"); }
if (talker.occupation == 48) { myself::ShowPage(talker,"proffer_48.htm"); }
if (talker.occupation == 49) { myself::ShowPage(talker,"proffer_49.htm"); }
if (talker.occupation == 50) { myself::ShowPage(talker,"proffer_50.htm"); }
if (talker.occupation == 51) { myself::ShowPage(talker,"proffer_51.htm"); }
if (talker.occupation == 52) { myself::ShowPage(talker,"proffer_52.htm"); }
if (talker.occupation == 53) { myself::ShowPage(talker,"proffer_53.htm"); }
if (talker.occupation == 54) { myself::ShowPage(talker,"proffer_54.htm"); }
if (talker.occupation == 55) { myself::ShowPage(talker,"proffer_55.htm"); }
if (talker.occupation == 56) { myself::ShowPage(talker,"proffer_56.htm"); }
if (talker.occupation == 57) { myself::ShowPage(talker,"proffer_57.htm"); }
if (talker.occupation > 80) { myself::ShowPage(talker,"no_coment.htm"); }
}

EventHandler MENU_SELECTED(talker,ask,reply) {
if (ask == 1) //Get 1st proff
{
   if (talker.level > 19)
   {
   if ( myself::OwnItemCount(talker,57) >=150000 )
      {
      myself::DeleteItem1(talker,57,150000);
      myself::Say("Поздравляю! Вы получили 1 проффесию!");
      myself::SoundEffect(talker, "ItemSound.quest_fanfare_2");
      myself::ClassChange(talker,reply);
      }
   else
       {
       myself::ShowPage(talker,"proffer_no_aden.htm");
       }
   }
else
   {
   myself::ShowPage(talker,"proffer_no20.htm");  
   }
}
if (ask == 2) //Get 2 proff
{
   if (talker.level > 39)
   {
   if ( myself::OwnItemCount(talker,57) >= 1500000 )
      {
      myself::DeleteItem1(talker,57,1500000);
      myself::Say("Поздравляю! Вы получили 2 проффесию!");
      myself::SoundEffect(talker, "ItemSound.quest_fanfare_2");
      myself::ClassChange(talker,reply);
      }
   else
      {
      myself::ShowPage(talker,"proffer_no_aden.htm");
      }
   }
else
   {
   myself::ShowPage(talker,"proffer_no40.htm");
   }
}
if (ask == 3) //Get 3 proff
{
if (talker.level > 75)
   {
   if ( myself::OwnItemCount(talker,4037) >= 10 )
      {
      myself::Say("Поздравляю! Вы получили 3 проффесию!");
      myself::SoundEffect(talker, "ItemSound.quest_fanfare_2");
      myself::ClassChange(talker,reply);
      }
   else
      {
      myself::ShowPage(talker,"proffer_no_col.htm");
      }
    }
else
  {
  myself::ShowPage(talker,"proffer_no76.htm");
  }
   }
}
}



Скрипт получения саба:
Раскрывающийся текст
Код
class sub_npc : citizen
{

handler:
EventHandler (talker)
{
   if (talker.level > 75)
   {
   if ( myself::OwnItemCount(talker,57) >= 1500000 )
      {
      myself::DeleteItem1(talker,57,1500000);
      myself->AddUseSkillDesire(talker,1110785,0,0,1000000);
      myself->AddLog(2,talker,235);
      myself::Say("Поздравляю! Вы получили сабкласс проффесию!");
      myself::SoundEffect(talker, "ItemSound.quest_finish");
      }
   else
      {
      myself::ShowPage(talker,"sub_npc_no_aden.htm");
      }
   }
else
   {
   myself::ShowPage(talker,"sub_npc_no75.htm");
   }
}

}



Мои соображения по этому поводу:
Должно получиться примерно вот так:

Раскрывающийся текст
Код
class test_server_helper : citizen
{

handler:
EventHandler TALKED(talker) {
if (talker.occupation == 0) { myself::ShowPage(talker,"proffer_0.htm"); }
if (talker.occupation == 1) { myself::ShowPage(talker,"proffer_1.htm"); }
if (talker.occupation == 2) { myself::ShowPage(talker,"proffer_2.htm"); }
if (talker.occupation == 3) { myself::ShowPage(talker,"proffer_3.htm"); }
if (talker.occupation == 4) { myself::ShowPage(talker,"proffer_4.htm"); }
if (talker.occupation == 5) { myself::ShowPage(talker,"proffer_5.htm"); }
if (talker.occupation == 6) { myself::ShowPage(talker,"proffer_6.htm"); }
if (talker.occupation == 7) { myself::ShowPage(talker,"proffer_7.htm"); }
if (talker.occupation == 8) { myself::ShowPage(talker,"proffer_8.htm"); }
if (talker.occupation == 9) { myself::ShowPage(talker,"proffer_9.htm"); }
if (talker.occupation == 10) { myself::ShowPage(talker,"proffer_10.htm"); }
if (talker.occupation == 11) { myself::ShowPage(talker,"proffer_11.htm"); }
if (talker.occupation == 12) { myself::ShowPage(talker,"proffer_12.htm"); }
if (talker.occupation == 13) { myself::ShowPage(talker,"proffer_13.htm"); }
if (talker.occupation == 14) { myself::ShowPage(talker,"proffer_14.htm"); }
if (talker.occupation == 15) { myself::ShowPage(talker,"proffer_15.htm"); }
if (talker.occupation == 16) { myself::ShowPage(talker,"proffer_16.htm"); }
if (talker.occupation == 17) { myself::ShowPage(talker,"proffer_17.htm"); }
if (talker.occupation == 18) { myself::ShowPage(talker,"proffer_18.htm"); }
if (talker.occupation == 19) { myself::ShowPage(talker,"proffer_19.htm"); }
if (talker.occupation == 20) { myself::ShowPage(talker,"proffer_20.htm"); }
if (talker.occupation == 21) { myself::ShowPage(talker,"proffer_21.htm"); }
if (talker.occupation == 22) { myself::ShowPage(talker,"proffer_22.htm"); }
if (talker.occupation == 23) { myself::ShowPage(talker,"proffer_23.htm"); }
if (talker.occupation == 24) { myself::ShowPage(talker,"proffer_24.htm"); }
if (talker.occupation == 25) { myself::ShowPage(talker,"proffer_25.htm"); }
if (talker.occupation == 26) { myself::ShowPage(talker,"proffer_26.htm"); }
if (talker.occupation == 27) { myself::ShowPage(talker,"proffer_27.htm"); }
if (talker.occupation == 28) { myself::ShowPage(talker,"proffer_28.htm"); }
if (talker.occupation == 29) { myself::ShowPage(talker,"proffer_29.htm"); }
if (talker.occupation == 30) { myself::ShowPage(talker,"proffer_30.htm"); }
if (talker.occupation == 31) { myself::ShowPage(talker,"proffer_31.htm"); }
if (talker.occupation == 32) { myself::ShowPage(talker,"proffer_32.htm"); }
if (talker.occupation == 33) { myself::ShowPage(talker,"proffer_33.htm"); }
if (talker.occupation == 34) { myself::ShowPage(talker,"proffer_34.htm"); }
if (talker.occupation == 35) { myself::ShowPage(talker,"proffer_35.htm"); }
if (talker.occupation == 36) { myself::ShowPage(talker,"proffer_36.htm"); }
if (talker.occupation == 37) { myself::ShowPage(talker,"proffer_37.htm"); }
if (talker.occupation == 38) { myself::ShowPage(talker,"proffer_38.htm"); }
if (talker.occupation == 39) { myself::ShowPage(talker,"proffer_39.htm"); }
if (talker.occupation == 40) { myself::ShowPage(talker,"proffer_40.htm"); }
if (talker.occupation == 41) { myself::ShowPage(talker,"proffer_41.htm"); }
if (talker.occupation == 42) { myself::ShowPage(talker,"proffer_42.htm"); }
if (talker.occupation == 43) { myself::ShowPage(talker,"proffer_43.htm"); }
if (talker.occupation == 44) { myself::ShowPage(talker,"proffer_44.htm"); }
if (talker.occupation == 45) { myself::ShowPage(talker,"proffer_45.htm"); }
if (talker.occupation == 46) { myself::ShowPage(talker,"proffer_46.htm"); }
if (talker.occupation == 47) { myself::ShowPage(talker,"proffer_47.htm"); }
if (talker.occupation == 48) { myself::ShowPage(talker,"proffer_48.htm"); }
if (talker.occupation == 49) { myself::ShowPage(talker,"proffer_49.htm"); }
if (talker.occupation == 50) { myself::ShowPage(talker,"proffer_50.htm"); }
if (talker.occupation == 51) { myself::ShowPage(talker,"proffer_51.htm"); }
if (talker.occupation == 52) { myself::ShowPage(talker,"proffer_52.htm"); }
if (talker.occupation == 53) { myself::ShowPage(talker,"proffer_53.htm"); }
if (talker.occupation == 54) { myself::ShowPage(talker,"proffer_54.htm"); }
if (talker.occupation == 55) { myself::ShowPage(talker,"proffer_55.htm"); }
if (talker.occupation == 56) { myself::ShowPage(talker,"proffer_56.htm"); }
if (talker.occupation == 57) { myself::ShowPage(talker,"proffer_57.htm"); }
if (talker.occupation > 80) { myself::ShowPage(talker,"no_coment.htm"); }
}

EventHandler MENU_SELECTED(talker,ask,reply) {
if (ask == 1) //Get 1st proff
{
   if (talker.level > 19)
   {
   if ( myself::OwnItemCount(talker,57) >=150000 )
      {
      myself::DeleteItem1(talker,57,150000);
      myself::Say("Поздравляю! Вы получили 1 проффесию!");
      myself::SoundEffect(talker, "ItemSound.quest_fanfare_2");
      myself::ClassChange(talker,reply);
      }
   else
       {
       myself::ShowPage(talker,"proffer_no_aden.htm");
       }
   }
else
   {
   myself::ShowPage(talker,"proffer_no20.htm");  
   }
}
if (ask == 2) //Get 2 proff
{
   if (talker.level > 39)
   {
   if ( myself::OwnItemCount(talker,57) >= 1500000 )
      {
      myself::DeleteItem1(talker,57,1500000);
      myself::Say("Поздравляю! Вы получили 2 проффесию!");
      myself::SoundEffect(talker, "ItemSound.quest_fanfare_2");
      myself::ClassChange(talker,reply);
      }
   else
      {
      myself::ShowPage(talker,"proffer_no_aden.htm");
      }
   }
else
   {
   myself::ShowPage(talker,"proffer_no40.htm");
   }
}
if (ask == 3) //Get 3 proff
{
if (talker.level > 75)
   {
   if ( myself::OwnItemCount(talker,4037) >= 10 )
      {
      myself::Say("Поздравляю! Вы получили 3 проффесию!");
      myself::SoundEffect(talker, "ItemSound.quest_fanfare_2");
      myself::ClassChange(talker,reply);
      }
   else
      {
      myself::ShowPage(talker,"proffer_no_col.htm");
      }
    }
else
  {
  myself::ShowPage(talker,"proffer_no76.htm");
  }
   }
}

parameter:
    int    Itemn = 1870;
    int    Itemn1 = 1875;
    int    Itemn2 = 1874;
    int    Amount = 1;
    int    Amount1 = 1;
    int    Amount2 = 1;

handler:
    EventHandler (talker)
    {
        if( talker.karma > 0 )
        {
            myself->ShowPage(talker,   "nobless_002.htm");
        }
        else if( talker.level <= 74 )
        {
            myself->ShowPage(talker,   "nobless_007.htm");
        }
        else if( talker.subjob_id == 0 )
        {
            myself->ShowPage(talker,   "nobless_006.htm");
        }
        else if( talker.nobless_type == 1 )
        {
            myself->ShowPage(talker,   "nobless_008.htm");
        }
        else
        {
            myself->ShowPage(talker,   "nobless_001.htm");
        }
    }

    EventHandler (talker,ask)
    {
        if( ask == 644 && ( myself->OwnItemCount(talker,Itemn) >= Amount && ( myself->OwnItemCount(talker,Itemn1) >= Amount1 && myself->OwnItemCount(talker,Itemn2) >= Amount2 ) ) )
        {
            myself->DeleteItem1(talker,Itemn,Amount);
            myself->DeleteItem1(talker,Itemn1,Amount1);
            myself->DeleteItem1(talker,Itemn2,Amount2);
            myself->GiveItem1(talker,7694,1);
            myself->SoundEffect(talker,   "ItemSound.quest_finish");
            myself->SetNobless(talker);
            myself->ShowPage(talker,   "nobless_005.htm");
        }
        else
        {
            myself->ShowPage(talker,   "nobless_003.htm");
        }
    }

handler:
EventHandler (talker)
{
   if (talker.level > 76)
   {
   if ( myself::OwnItemCount(talker,57) >= 1500000 )
      {
      myself::DeleteItem1(talker,57,1500000);
      myself->AddUseSkillDesire(talker,1110785,0,0,1000000);
      myself->AddLog(2,talker,235);
      myself::Say("Поздравляю! Вы получили сабкласс проффесию!");
      myself::SoundEffect(talker, "ItemSound.quest_finish");
      }
   else
      {
      myself::ShowPage(talker,"sub_npc_no_aden.htm");
      }
   }
else
   {
   myself::ShowPage(talker,"sub_npc_no76.htm");
   }
}

}

0
Антоха
Антоха

User

Бывалый

Posts: 289

На форуме с: 11/24/2008

Репутация: +333

Рейтинг: 0

· 02/23/2010, 10:30 PM

Актуально

0
smeli
smeli

User

Бывалый

Posts: 392

На форуме с: 10/02/2007

Репутация: +431

Рейтинг: 0

· 03/08/2010, 04:35 PM

[ADM]RuLeZzz:
Актуально


советую начять с рабочих исходных калсов а то баги светятстя сразу

потом советую изучить аи уже рабочий
например возможно увидете что слово "handler:" в классе бывает только одно
и всё прочее в таком же духе

0
Антоха
Антоха

User

Бывалый

Posts: 289

На форуме с: 11/24/2008

Репутация: +333

Рейтинг: 0

· 03/08/2010, 06:49 PM

smeli, Спасибо, только я уже сам разобрался и сделал ok.gif

PS: Тему можно закрыть по причине неактуальности good.gif

0
Войдите или зарегистрируйтесь чтобы ответить