Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Работа со скриптами (https://forum.zone-game.info/forumdisplay.php?f=37)
-   -   [PTS] диалоги при наличии предметов (https://forum.zone-game.info/showthread.php?t=42855)

mercury320 05.01.2018 04:41

[PTS] диалоги при наличии предметов
 
Всем привет!
Подскажите пожалуйста хочу сделать на Gracia Final что быв зависимости от определенного итема\левла менялся диалог.

Вот мой код:
class test_npc{
 
 
handler:
  EventHandler TALKED( talker )
  {
      if(talker.level >= 80 ) 
    {
		ShowPage(talker, "dialog1.htm" );
    }
 
   if( OwnItemCount(talker, 4036) >= 1 ) 
    {
		ShowPage(talker, "dialog2.htm" );
    }
 
	if( OwnItemCount(talker, 4037) >= 1 ) 
    {
		ShowPage(talker, "dialog3.htm" );
    }
 
	if( OwnItemCount(talker, 4038) >= 1 ) 
    {
		ShowPage(talker, "dialog4.htm" );
    }
  }
  }
Code: C++
мне нужно что бы при наличии итема 4037 открывался dialog2.htm если 4038 то dialog3.htm
Этот код открывает нужную страницу но сначала открывает диалог с 4037 а потом сразу 4038 и так далее

Есть еще один вопрос, как задать радиус работы диалога с нпц то бы при отходе от нпц он переставал работать или закрывался

smeli 05.01.2018 12:29

Re: [PTS] диалоги при наличии предметов
 
Код:


class test_npc{
 
 
handler:
  EventHandler TALKED( talker )
  {
 
 
  if( OwnItemCount(talker, 4036) >= 1 )
    {
                ShowPage(talker, "dialog2.htm" );
    }
 
        else if( OwnItemCount(talker, 4037) >= 1 )
    {
                ShowPage(talker, "dialog3.htm" );
    }
 
        else if( OwnItemCount(talker, 4038) >= 1 )
    {
                ShowPage(talker, "dialog4.htm" );
    }

    else if(talker.level >= 80 )
    {
                ShowPage(talker, "dialog1.htm" );
  }

  }
  }


Zubastic 05.01.2018 14:20

Re: [PTS] диалоги при наличии предметов
 
Тут либо else либо return.

mercury320 05.01.2018 15:27

Re: [PTS] диалоги при наличии предметов
 
Спасибо!
А как можно сделать что бы диалог переставал работать или закрывался если отошел от нпц если не закрывать диалог то он будет работать хоть в другом конце карты.

Gaikotsu 05.01.2018 19:00

Re: [PTS] диалоги при наличии предметов
 
проверять в обрабатываемой ссылке из диалога текущее расстояние от нпс до игрока
функции проверки расстояния в АИ есть, токльо ща не помню уже их название.

mercury320 11.01.2018 11:32

Re: [PTS] диалоги при наличии предметов
 
Имеется вот такой диалог, сейчас снимает 1 адену только за Reply = 1
как сделать что бы снималось за любой Reply не прописывая каждому OwnItemCount(talker, @adena) > 1 и DeleteItem


 
				if( ask == -8 && reply == 1 && OwnItemCount(talker, @adena) > 1 )
				{
					CastBuffForQuestReward(talker,  753664002);
					DeleteItem1 (talker, @adena, 1);
					ShowPage (talker, "blabla_dialog1.htm");
					return;
				}
				else if( ask == -8 && reply == 2 )
				{
					CastBuffForQuestReward(talker,  753664001);
					ShowPage (talker, "blabla_dialog1.htm");
					return;
				}
				else if( ask == -8 && reply == 3 )
				{
					CastBuffForQuestReward(talker, 754647042);
					ShowPage (talker, "blabla_dialog1.htm");
					return;
				}
Code: C++

Gaikotsu 11.01.2018 13:53

Re: [PTS] диалоги при наличии предметов
 
if(ask == -8)
{
	if (OwnItemCount(talker, @adena) < 1)
	{
		ShowPage(talker, "no_money.htm");
		return;
	}
 
	DeleteItem1 (talker, @adena, 1);
 
	if (reply == 1)
	{
		CastBuffForQuestReward(talker, 753664002);
	}
	else if (reply == 2)
	{
		CastBuffForQuestReward(talker, 753664001);
	}
	else if (reply == 3)
	{
		CastBuffForQuestReward(talker, 754647042);
	}
 
	ShowPage(talker, "blabla_dialog1.htm");
	return;
} 
Code: C++


Текущее время: 09:16. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot