Как добавить Deposit Warehouse в свой NPC.

  • Автор темы Автор темы vell74
  • Дата начала Дата начала

vell74

Последний из атеистов
Участник
Сообщения
18
Розыгрыши
0
Репутация
0
Реакции
0
Баллы
823
Всем привет, сборка AdvExt GFIL как в этой сборке добавить возможность в своего NPC


Мой NPC наследуется от merchant_for_chaotic чтобы можно было использовать функции кузнеца

Код:
class gm_shop: merchant_for_chaotic
{
parameter:

string fnHi = "gm_shop001.htm";

handler:

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

EventHandler
    MENU_SELECTED(talker,ask,reply)
  {
if(ask == -16)
    {
if(reply == 1)
          {
             myself.OpenHennaItemListForEquip(talker);
          }

else if(reply == 2)
          {
             myself.OpenHennaListForUnquip(talker);
          }
    }



if (ask == 1) {
      myself.ShowMultisell(reply,talker);
    }

if (ask == 2) {

if (reply == 1) {

if (talker.is_pledge_master != 0) {
myself.ShowPage(talker, "pl007.htm");
} else {
myself.ShowPage(talker, "pl008.htm");
        }
      }
    }

    super;

  }

}


Вопрос как сюда прокинуть еще функционал Deposit ?

Вот полностью NPC который работает в Giran))

Код:
//***********************************************************************

//*| SauDecompiler | Ported to С# CjlaBuK,  Keeper | Design Rage | ©2012*

//***********************************************************************


class warehouse_keeper : citizen
{

parameter:
   string    fnHi = "whi.htm";
   string    fnBye = "wbye.htm";
   string    fnYouAreChaotic = "wyac.htm";
   string    fnClassMismatch = "";
   string    fnEmpty = "we.htm";
   string    fnNowSiege = "";
   string    fnNotFourthClass = "skillenchant_notfourthclass.htm";
   string    fnLevelMismatch = "skillenchant_levelmismatch.htm";

handler:
EventHandler
   NO_DESIRE()
   {
       myself.AddDoNothingDesire(-1, 9999);
   }



EventHandler
   TALKED(talker)
   {
       if(talker.karma > 0)
       {
           myself.ShowPage(talker, fnYouAreChaotic);
       }
       else
       {
           myself.ShowPage(talker, fnHi);
       }
   }



EventHandler
   LEARN_SKILL_REQUESTED(talker)
   {
       if(myself.IsInCategory(59, talker.occupation))
       {
           myself.ShowSkillList(talker, "");
       }
       else
       {
           myself.ShowPage(talker, fnClassMismatch);
       }

   }



EventHandler

   ONE_SKILL_SELECTED(talker, skill_name_id, need_quest)
   {
       myself.ShowGrowSkillMessage(talker, skill_name_id, "");
   }



EventHandler

   ENCHANT_SKILL_REQUESTED(talker, state)
   {
       if(myself.IsInCategory(59, talker.occupation))
       {
           if(myself.IsInCategory(9, talker.occupation))
           {
               if(talker.level > 75)
               {
                   talker.ShowEnchantSkillList(state);
               }

               else

               {

                   myself.ShowPage(talker, fnLevelMismatch);

               }

           }

           else

           {

               myself.ShowPage(talker, fnNotFourthClass);

           }

       }

       else

       {

           myself.ShowPage(talker, fnClassMismatch);

       }

   }



EventHandler

   SHOW_ENCHANT_SKILL_DRAWER(talker, skill_name_id, action_id)

   {

       myself.ShowEnchantSkillListDrawer(talker, skill_name_id, action_id);

   }



EventHandler

   ONE_ENCHANT_SKILL_SELECTED(talker, skill_name_id, action_id)

   {

       talker.ShowEnchantSkillMessage(skill_name_id, action_id);

   }



}

Код:
//***********************************************************************

//*| SauDecompiler | Ported to С# CjlaBuK,  Keeper | Design Rage | ©2012*

//***********************************************************************





class valkon : warehouse_keeper

{

handler:

EventHandler

   TALK_SELECTED(fhtml0, talker)

   {

       if(_from_choice == 0)

       {

           if(gg.HaveMemo(talker, @trial_of_guildsman) == 0 && myself.GetOneTimeQuestFlag(talker, @trial_of_guildsman) == 0)

           {

               _choiceN = (_choiceN + 1);

               _code = 0;

               myself.AddChoice(0, gg.MakeFString(21601, "", "", "", "", ""));

           }

           if(gg.HaveMemo(talker, @trial_of_guildsman) == 0 && myself.GetOneTimeQuestFlag(talker, @trial_of_guildsman) == 1)

           {

               _choiceN = (_choiceN + 1);

               _code = 1;

               myself.AddChoice(1, gg.MakeFString(21603, "", "", "", "", ""));

           }

           if(gg.HaveMemo(talker, @trial_of_guildsman) == 1 && gg.OwnItemCount(talker, @valkons_recommend) == 1)

           {

               _choiceN = (_choiceN + 1);

               _code = 2;

               myself.AddChoice(2, gg.MakeFString(21602, "", "", "", "", ""));

           }

           if(gg.HaveMemo(talker, @trial_of_guildsman) == 1 && gg.OwnItemCount(talker, @alltrans_instructions) == 1)

           {

               _choiceN = (_choiceN + 1);

               _code = 3;

               myself.AddChoice(3, gg.MakeFString(21602, "", "", "", "", ""));

           }

           if(gg.HaveMemo(talker, @trial_of_scholar) == 1 && gg.OwnItemCount(talker, @treafs_ring) == 1 && gg.OwnItemCount(talker, @valkons_request) == 0 && gg.OwnItemCount(talker, @crystal_of_purity2) == 0 && gg.OwnItemCount(talker, @scripture_chapter_2) == 0)

           {

               _choiceN = (_choiceN + 1);

               _code = 4;

               myself.AddChoice(4, gg.MakeFString(21402, "", "", "", "", ""));

           }

           if(gg.HaveMemo(talker, @trial_of_scholar) == 1 && gg.OwnItemCount(talker, @treafs_ring) == 1 && gg.OwnItemCount(talker, @valkons_request) == 1 && gg.OwnItemCount(talker, @crystal_of_purity2) == 0 && gg.OwnItemCount(talker, @scripture_chapter_2) == 0)

           {

               _choiceN = (_choiceN + 1);

               _code = 5;

               myself.AddChoice(5, gg.MakeFString(21402, "", "", "", "", ""));

           }

           if(gg.HaveMemo(talker, @trial_of_scholar) == 1 && gg.OwnItemCount(talker, @treafs_ring) == 1 && gg.OwnItemCount(talker, @valkons_request) == 0 && gg.OwnItemCount(talker, @crystal_of_purity2) == 1 && gg.OwnItemCount(talker, @scripture_chapter_2) == 0)

           {

               _choiceN = (_choiceN + 1);

               _code = 6;

               myself.AddChoice(6, gg.MakeFString(21402, "", "", "", "", ""));

           }

           if(gg.HaveMemo(talker, @trial_of_scholar) == 1 && gg.OwnItemCount(talker, @treafs_ring) == 1 && gg.OwnItemCount(talker, @valkons_request) == 0 && gg.OwnItemCount(talker, @crystal_of_purity2) == 0 && gg.OwnItemCount(talker, @scripture_chapter_2) == 1)

           {

               _choiceN = (_choiceN + 1);

               _code = 7;

               myself.AddChoice(7, gg.MakeFString(21402, "", "", "", "", ""));

           }

           if(_choiceN > 1)

           {

               myself.ShowChoicePage(talker, 1);

               return;

           }

       }

       if(_from_choice || _choiceN == 1)

       {

           if(myself.GetInventoryInfo(talker, 0) >= (myself.GetInventoryInfo(talker, 1) * 0.800000) || myself.GetInventoryInfo(talker, 2) >= (myself.GetInventoryInfo(talker, 3) * 0.800000))

           {

               myself.ShowSystemMessage(talker, 1118);

               return;

           }

           select(_code)

           {

               case 0:

                   if(_from_choice == 0 || (gg.HaveMemo(talker, @trial_of_guildsman) == 0 && myself.GetOneTimeQuestFlag(talker, @trial_of_guildsman) == 0))

                   {

                       myself.SetCurrentQuestID(@trial_of_guildsman);

                       if(myself.GetMemoCount(talker) < 41)

                       {

                           if(talker.occupation == 56 || talker.occupation == 54)

                           {

                               if(talker.level < 35)

                               {

                                   myself.ShowPage(talker, "valkon_q0216_02.htm");

                               }

                               else

                               {

                                   myself.ShowPage(talker, "valkon_q0216_03.htm");

                               }

                           }

                           else

                           {

                               myself.ShowPage(talker, "valkon_q0216_01.htm");

                           }

                       }

                       else

                       {

                           myself.ShowPage(talker, "fullquest.htm");

                       }

                   }

                   break;

               case 1:

                   if(_from_choice == 0 || (gg.HaveMemo(talker, @trial_of_guildsman) == 0 && myself.GetOneTimeQuestFlag(talker, @trial_of_guildsman) == 1))

                   {

                       myself.SetCurrentQuestID(@trial_of_guildsman);

                       myself.ShowPage(talker, "finishedquest.htm");

                   }

                   break;

               case 2:

                   if(_from_choice == 0 || (gg.HaveMemo(talker, @trial_of_guildsman) == 1 && gg.OwnItemCount(talker, @valkons_recommend) == 1))

                   {

                       myself.SetCurrentQuestID(@trial_of_guildsman);

                       myself.ShowPage(talker, "valkon_q0216_07.htm");

                       myself.SetFlagJournal(talker, 216, 3);

                       myself.ShowQuestMark(talker, @trial_of_guildsman);

                   }

                   break;

               case 3:

                   if(_from_choice == 0 || (gg.HaveMemo(talker, @trial_of_guildsman) == 1 && gg.OwnItemCount(talker, @alltrans_instructions) == 1))

                   {

                       myself.SetCurrentQuestID(@trial_of_guildsman);

                       if(gg.OwnItemCount(talker, @journeyman_ring) < 7)

                       {

                           myself.ShowPage(talker, "valkon_q0216_08.htm");

                       }

                       else

                       {

                           myself.ShowPage(talker, "valkon_q0216_09.htm");

                       }

                   }

                   break;

               case 4:

                   if(_from_choice == 0 || (gg.HaveMemo(talker, @trial_of_scholar) == 1 && gg.OwnItemCount(talker, @treafs_ring) == 1 && gg.OwnItemCount(talker, @valkons_request) == 0 && gg.OwnItemCount(talker, @crystal_of_purity2) == 0 && gg.OwnItemCount(talker, @scripture_chapter_2) == 0))

                   {

                       myself.SetCurrentQuestID(@trial_of_scholar);

                       myself.ShowPage(talker, "valkon_q0214_01.htm");

                   }

                   break;

               case 5:

                   if(_from_choice == 0 || (gg.HaveMemo(talker, @trial_of_scholar) == 1 && gg.OwnItemCount(talker, @treafs_ring) == 1 && gg.OwnItemCount(talker, @valkons_request) == 1 && gg.OwnItemCount(talker, @crystal_of_purity2) == 0 && gg.OwnItemCount(talker, @scripture_chapter_2) == 0))

                   {

                       myself.SetCurrentQuestID(@trial_of_scholar);

                       myself.ShowPage(talker, "valkon_q0214_05.htm");

                   }

                   break;

               case 6:

                   if(_from_choice == 0 || (gg.HaveMemo(talker, @trial_of_scholar) == 1 && gg.OwnItemCount(talker, @treafs_ring) == 1 && gg.OwnItemCount(talker, @valkons_request) == 0 && gg.OwnItemCount(talker, @crystal_of_purity2) == 1 && gg.OwnItemCount(talker, @scripture_chapter_2) == 0))

                   {

                       myself.SetCurrentQuestID(@trial_of_scholar);

                       if((myself.GetCurrentTick() - talker.quest_last_reward_time) > 1)

                       {

                           talker.quest_last_reward_time = myself.GetCurrentTick();

                           myself.ShowPage(talker, "valkon_q0214_06.htm");

                           myself.DeleteItem1(talker, @crystal_of_purity2, 1);

                           myself.GiveItem1(talker, @scripture_chapter_2, 1);

                       }

                   }

                   break;

               case 7:

                   if(_from_choice == 0 || (gg.HaveMemo(talker, @trial_of_scholar) == 1 && gg.OwnItemCount(talker, @treafs_ring) == 1 && gg.OwnItemCount(talker, @valkons_request) == 0 && gg.OwnItemCount(talker, @crystal_of_purity2) == 0 && gg.OwnItemCount(talker, @scripture_chapter_2) == 1))

                   {

                       myself.SetCurrentQuestID(@trial_of_scholar);

                       myself.ShowPage(talker, "valkon_q0214_07.htm");

                   }

                   break;

           }

           return;

       }

       super;

   }



EventHandler

   QUEST_ACCEPTED(quest_id, talker)

   {

       if(quest_id == 216)

       {

           myself.SetCurrentQuestID(@trial_of_guildsman);

           if(myself.GetInventoryInfo(talker, 0) >= (myself.GetInventoryInfo(talker, 1) * 0.800000) || myself.GetInventoryInfo(talker, 2) >= (myself.GetInventoryInfo(talker, 3) * 0.800000))

           {

               myself.ShowSystemMessage(talker, 1118);

               return;

           }

           if(gg.OwnItemCount(talker, @adena) >= 2000)

           {

               if((myself.GetCurrentTick() - talker.quest_last_reward_time) > 1)

               {

                   talker.quest_last_reward_time = myself.GetCurrentTick();

                   myself.SetMemo(talker, quest_id);

                   myself.SoundEffect(talker, "ItemSound.quest_accept");

                   if(gg.OwnItemCount(talker, @valkons_recommend) == 0)

                   {

                       myself.GiveItem1(talker, @valkons_recommend, 1);

                   }

                   myself.ShowPage(talker, "valkon_q0216_06.htm");

                   myself.DeleteItem1(talker, @adena, 2000);

                   myself.SetFlagJournal(talker, 216, 1);

                   myself.ShowQuestMark(talker, @trial_of_guildsman);

               }

           }

           else

           {

               myself.ShowPage(talker, "valkon_q0216_05b.htm");

           }

           return;

       }

       super;

   }



EventHandler

   MENU_SELECTED(ask, fhtml0, reply, talker)

   {

       if(ask == 216 || ask == 214)

       {

           if(myself.GetInventoryInfo(talker, 0) >= (myself.GetInventoryInfo(talker, 1) * 0.800000) || myself.GetInventoryInfo(talker, 2) >= (myself.GetInventoryInfo(talker, 3) * 0.800000))

           {

               myself.ShowSystemMessage(talker, 1118);

               return;

           }

           if(ask == 216)

           {

               myself.SetCurrentQuestID(@trial_of_guildsman);

               if(reply == 1)

               {

                   myself.ShowPage(talker, "valkon_q0216_04.htm");

               }

               else if(reply == 2)

               {

                   myself.FHTML_SetFileName(fhtml0, "valkon_q0216_05.htm");

                   myself.FHTML_SetInt(fhtml0, "quest_id", 216);

                   myself.ShowFHTML(talker, fhtml0);

               }

               else if(reply == 3)

               {

                   if(gg.HaveMemo(talker, @trial_of_guildsman) == 1 && gg.OwnItemCount(talker, @alltrans_instructions) >= 1 && gg.OwnItemCount(talker, @journeyman_ring) >= 7)

                   {

                       if((myself.GetCurrentTick() - talker.quest_last_reward_time) > 1)

                       {

                           talker.quest_last_reward_time = myself.GetCurrentTick();

                           myself.ShowPage(talker, "valkon_q0216_09a.htm");

                           myself.RemoveMemo(talker, @trial_of_guildsman);

                           myself.SoundEffect(talker, "ItemSound.quest_finish");

                           myself.SetOneTimeQuestFlag(talker, @trial_of_guildsman, 1);

                           myself.IncrementParam(talker, 0, (80993 * QuestExpRate));

                           myself.IncrementParam(talker, 1, (12250 * QuestSpRate));

                           myself.GiveItem1(talker, @q_dimension_diamond, 8);

                           myself.DeleteItem1(talker, @journeyman_ring, gg.OwnItemCount(talker, 3139));

                           myself.DeleteItem1(talker, @alltrans_instructions, gg.OwnItemCount(talker, 3122));

                           myself.DeleteItem1(talker, @rp_journeyman_ring, gg.OwnItemCount(talker, 3024));

                           myself.GiveItem1(talker, @mark_of_guildsman, 1);

                       }

                   }

               }

               else if(reply == 4)

               {

                   if(gg.HaveMemo(talker, @trial_of_guildsman) == 1 && gg.OwnItemCount(talker, @alltrans_instructions) >= 1 && gg.OwnItemCount(talker, @journeyman_ring) >= 7)

                   {

                       if((myself.GetCurrentTick() - talker.quest_last_reward_time) > 1)

                       {

                           talker.quest_last_reward_time = myself.GetCurrentTick();

                           myself.IncrementParam(talker, 0, (241321 * QuestExpRate));

                           myself.GiveItem1(talker, @q_dimension_diamond, 8);

                           myself.ShowPage(talker, "valkon_q0216_09b.htm");

                           myself.RemoveMemo(talker, @trial_of_guildsman);

                           myself.SoundEffect(talker, "ItemSound.quest_finish");

                           myself.SetOneTimeQuestFlag(talker, @trial_of_guildsman, 1);

                           myself.DeleteItem1(talker, @journeyman_ring, gg.OwnItemCount(talker, 3139));

                           myself.DeleteItem1(talker, @alltrans_instructions, gg.OwnItemCount(talker, 3122));

                           myself.DeleteItem1(talker, @rp_journeyman_ring, gg.OwnItemCount(talker, 3024));

                           myself.GiveItem1(talker, @mark_of_guildsman, 1);

                       }

                   }

               }

           }

           else if(ask == 214)

           {

               myself.SetCurrentQuestID(@trial_of_scholar);

               if(reply == 1)

               {

                   myself.ShowPage(talker, "valkon_q0214_02.htm");

               }

               else if(reply == 2)

               {

                   myself.ShowPage(talker, "valkon_q0214_03.htm");

               }

               else if(reply == 3)

               {

                   if((myself.GetCurrentTick() - talker.quest_last_reward_time) > 1)

                   {

                       talker.quest_last_reward_time = myself.GetCurrentTick();

                       myself.ShowPage(talker, "valkon_q0214_04.htm");

                       myself.GiveItem1(talker, @valkons_request, 1);

                   }

               }

           }

       }

       super;

   }



}
 
Данный сайт использует cookie. Вы должны принять их для продолжения использования. Узнать больше…