Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 10 11 12 13 14 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Aiwan
сообщение Oct 17 2004, 08:22
Сообщение #271


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Shad щас, гляну :yes:
Ой блин! :oh: У меня ж нету Тулсета... :swoon: Но солью все равно :D
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Shad
сообщение Oct 19 2004, 00:36
Сообщение #272


Level 3
*

Класс: Обыватель
Характер: Lawful Good
Раса: Человек



QUOTE (Aiwan @ Oct 17 2004, 08:22)
Shad  щас, гляну  :yes: 
Ой блин! :oh: У меня ж нету Тулсета...  :swoon:  Но солью все равно  :D

Напиши, как оно. Интересно... :rolleyes:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Черный Ярл
сообщение Oct 19 2004, 01:40
Сообщение #273


Level 3
Иконки Групп

Класс: Теневой Танцор
Характер: Lawful Evil
Раса: Человек
NWN: Маппинг
Сиала



Мир вам!

Не получается отследить нанесение чаром или мобом "критического удара" для последующего запуска собственной процедуры.
Вообще это реализуемо? Если да, то как?
Спасибо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
baskan
сообщение Oct 23 2004, 14:37
Сообщение #274


Level 7
**

Класс: Бард
Характер: Lawful Good
Раса: Фея



Ай нид хелп..
Вот скрипт и тут есть фича с регистрацией аккаунта на шарде..так вот как ее отсечь без вреда скрипту?(ка я понял там еще есть некоторые действия)

CODE
void main()
{
PGSModuleClientEnterEvent (GetEnteringObject());
object oPC = GetEnteringObject();
object oEmote = GetItemPossessedBy(oPC, ITEM_TYPE_EMOTEWAND);
object oDMring = GetItemPossessedBy(oPC, "dmfi_onering");
object oObject = GetItemPossessedBy(oPC, sSTR_013);
object pl;
string sName = GetPCPlayerName(oPC);
string sFName = GetName(oPC);
string sDMName = GetPCPlayerName(oPC);
string sKey = GetCampaignString(SECURITY, sName);
string sPL1 = GetCampaignString(SECURITY, sName+"player1");
string sPL2 = GetCampaignString(SECURITY, sName+"player2");
string sPL3 = GetCampaignString(SECURITY, sName+"player3");
int iAlignment = GetAlignmentGoodEvil(oPC);
int a;
int b;
int d;
int iDHP;
int iMHP = GetMaxHitPoints(oPC);
int nomer=StringToInt(GetDeity(oPC));
int prenomer=0;
if (GetIsPC(oPC) && !GetIsDM(oPC))
{
 SetPlotFlag(oPC, FALSE);
 SendMessageToPC(oPC, sSTR_005);
 //
 if (sPL1==sFName) {prenomer=1;}
 else if (sPL2==sFName) {prenomer=2;}
 else if (sPL3==sFName) {prenomer=3;};
 //
 if ((nomer==0)&&(prenomer!=0)&&(GetCampaignString(CHAR_DATA,sName+"player"+IntToString(prenomer)+"VISIT")==""))
 {
 SetCampaignString(CHAR_DATA,sName+"player"+IntToString(prenomer)+"VISIT","TRUE");
 SetDeity(oPC,IntToString(prenomer));
 nomer=prenomer;
 a=0;
 for (d = 1; d <=GetCampaignInt("player_list","count"); d++)
 {
 if (a==1) continue;
 if (GetCampaignString("player_list",IntToString(GetCampaignInt("player_list","count")))!=sName){}
 else {a=1;};
 };

 if (a!=1)
 {
 SetCampaignInt("player_list","count",(GetCampaignInt("player_list","count")+1));
 SetCampaignString("player_list",IntToString(GetCampaignInt("player_list","count")),sName);
 };
 };
 //
 if ( (GetPCPublicCDKey(oPC) == sKey)&&(nomer==prenomer)&&(nomer!=0))
 {
  if (oEmote == OBJECT_INVALID) CreateItemOnObject(ITEM_TYPE_EMOTEWAND, oPC, 1);

   switch (iAlignment)
   {
   case ALIGNMENT_GOOD:
   if (GetCampaignInt(GOOD_EVIL,sFName+sName) != 1) SetCampaignInt(GOOD_EVIL,sFName+sName,1);
   break;
   case ALIGNMENT_EVIL:
   if (GetCampaignInt(GOOD_EVIL,sFName+sName) != 2) SetCampaignInt(GOOD_EVIL,sFName+sName,2);
   break;
   default:
   if (GetCampaignInt(GOOD_EVIL,sFName+sName) != 3) SetCampaignInt(GOOD_EVIL,sFName+sName,3);
   break;
   }


   pl = GetFirstPC();
   b = GetCampaignInt(GOOD_EVIL,sFName+sName);
   while ( pl != OBJECT_INVALID)
   {
   if ((!GetIsDM(pl))&&(pl!=oPC))
   {
   a = GetCampaignInt(GOOD_EVIL,GetName(pl)+GetPCPlayerName(pl));
   if ((a!=b)&&(a!=2)&&(b!=2)) ActionDoCommand(SetPCDislike(oPC,pl));
   };
   pl=GetNextPC();
   }
  //ExecuteScript ("ats_client_enter",oPC);

 SetLocalString(oPC,"acc",GetPCPlayerName(oPC));

 int iHP = StringToInt(GetCampaignString(CHAR_DATA,GetPCPlayerName(oPC)+"player"+IntToString(nomer)+"HP"));
 if (iHP != 0)
 {
 if (iHP<iMHP){iDHP=iMHP-iHP;ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(iDHP), oPC);}
 else if (iHP>iMHP) {iDHP=iHP-iMHP; ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectTemporaryHitpoints(iDHP), oPC,30.0);}
 };

 if (GetIsDead(oPC))
 {
 SetLocalInt(oPC,"autokill",1);
 location lLoc = GetCampaignLocation("bd_locations",sFName+sName);
 AssignCommand(oPC,ActionJumpToLocation(lLoc));
 };

 /*Vnesenie akkauntov v spisok player_list
 a=0;
 for (d = 1; d <=GetCampaignInt("player_list","count"); d++)
 {
 if (a==1) continue;
 if (GetCampaignString("player_list",IntToString(GetCampaignInt("player_list","count")))!=sName){}
 else {a=1;};
 };

 if (a!=1)
 {
 SetCampaignInt("player_list","count",(GetCampaignInt("player_list","count")+1));
 SetCampaignString("player_list",IntToString(GetCampaignInt("player_list","count")),sName);
 };
 */

 }
 else{BootPC(oPC); SetLocalInt(oPC,"bootexit",1);}
}
else if (GetIsDM(oPC))
 {
  if (GetCampaignString(DM_VAULT, sDMName) == GetPCPublicCDKey(oPC))
  {
   SendMessageToPC(oPC, sSTR_038);
   if (oDMring == OBJECT_INVALID) { CreateItemOnObject("dmfi_onering", oPC, 1); }
  }

  else
  {
  BootPC(oPC);
  PrintString("Someone with IP: " + GetPCIPAddress(oPC) + " tryed to enter as a DM '" + GetPCPlayerName(oPC) + "'!");
  }
 }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Oct 23 2004, 15:01
Сообщение #275


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



Черный Ярл
QUOTE (Черный Ярл @ Oct 19 2004, 01:40)
Не получается отследить нанесение чаром или мобом "критического удара" для последующего запуска собственной процедуры. Вообще это реализуемо? Если да, то как?

Мне кажется, что это нельзя отследить... Хотя... есть идейка хитренькая...
У моба надо скрипт на OnDamage вешать. При каждом полученном неписем повреждении скрипт на нем анализирует максимальный "некритический" удар damager'а. Сравнивает с полученным повреждением и если оно больше, чем максимальный "некритический" удар, значит это КРИТ. Запускаем кастом функцию. :drag:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 23 2004, 18:10
Сообщение #276


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Shad я посмотрел твой модуль. МОЛОДЕЦ! :good:
Признаюсь честно, в ХоТУ я не гамал, эпик спеллы не знаю :crazy: Но то что видел у тебя мне понравилось!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Shad
сообщение Oct 25 2004, 04:06
Сообщение #277


Level 3
*

Класс: Обыватель
Характер: Lawful Good
Раса: Человек



QUOTE (Aiwan @ Oct 23 2004, 18:10)
Shad  я посмотрел твой модуль. МОЛОДЕЦ!  :good:
Признаюсь честно, в ХоТУ я не гамал, эпик спеллы не знаю  :crazy:  Но то что видел у тебя мне понравилось!

Спасибо, Aiwan. :yes: Значит я не зря старался. :D Осталость применение найти.
П.С. Можно удалять посты о модуле, дабы тему не зафлуживать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 25 2004, 10:01
Сообщение #278


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Все нормально. Если уж наши слова спам, то я Испанский Летчик :pilot:
Может ты бы оформил свой модуль как ссылку и в тему полезных ссылок поставил?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
baskan
сообщение Oct 25 2004, 17:52
Сообщение #279


Level 7
**

Класс: Бард
Характер: Lawful Good
Раса: Фея



Вопросик..

В каком модульном свойстве стоит система лута? :unsure:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Oct 25 2004, 18:35
Сообщение #280


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



Лут не в модульных свойствах. Он в OnDeath крича.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
baskan
сообщение Oct 25 2004, 21:19
Сообщение #281


Level 7
**

Класс: Бард
Характер: Lawful Good
Раса: Фея



QUOTE (DBColl @ Oct 25 2004, 18:35)
Лут не в модульных свойствах. Он в OnDeath крича.

Ясно..Спасибо :yahoo:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Тобур
сообщение Oct 25 2004, 23:38
Сообщение #282


Level 2
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]



Не подскажут ли мастера тулсета: Как сделать цикл перебора всех карт в модуле? Что-то я рылся в функция, рылся - ничего не нашел. Вся беда в том, что невозможно присваивать свою величину перепенной типа object :(
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 26 2004, 00:04
Сообщение #283


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



А нельзя циклом прогнать объекты, и определить их тип как area?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Shad
сообщение Oct 26 2004, 01:19
Сообщение #284


Level 3
*

Класс: Обыватель
Характер: Lawful Good
Раса: Человек



Тобур Если можно достучатся до файлов на диске, ResRef-ы карт в файле module.ifo хранятся подряд, возможно это можно использовать.
Можно использовать объекты со специфическим тегом ("sequence_xx") и пробегать по ним.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Oct 26 2004, 03:34
Сообщение #285


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



Shad
До ерф-файлов и module.ifo из игры не достучаться.
QUOTE (Тобур @ Oct 25 2004, 23:38)
Вся беда в том, что невозможно присваивать свою величину перепенной типа object

??? Это что значит нельзя?! Кто сказал такую чушь? SetLocalObject(...) нельзя делать??? Или я не понял?.. :this: :unsure:
QUOTE (Aiwan @ Oct 26 2004, 00:04)
А нельзя циклом прогнать объекты, и определить их тип как area?

Это будет слишком долго (если модуль довольно объемный)... Вообще имхо ЛУЧШИЙ вариант - поставить в КАЖДОЙ локе вейп с одинаковым тэгом, допустим "WP_ID_AREA". Потом просто циклом перебираем:
Neverwinter Script Source
object oWP, oArea;
while (GetIsObjectValid(oWP = GetObjectByTag("WP_ID_AREA", n)))
{
    oArea = GetArea(oWP);
    ....//здесь делаешь с локой то, что тебе надо от перебора
    n++;
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Тобур
сообщение Oct 26 2004, 07:41
Сообщение #286


Level 2
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]



QUOTE (DBColl @ Oct 26 2004, 03:34)
??? Это что значит нельзя?! Кто сказал такую чушь? SetLocalObject(...) нельзя делать??? Или я не понял?.. :this:  :unsure:

Эхх , если бы все было так просто :(
скриптик
object oMod = GetModule();
int i = 1;
SetLocalObject(oMod,"CurMap",i);
компилируется с ошибкой ERROR: DECLARATION DOES NOT MATCH PARAMETERS, хотя в Лексиконе ясно сказано "object - An integer that represents a particular object in the world (essentially a pointer to a real object)".

Я не могу никаким образом получить какую-то идентификацию карты иначе, чем через объект, который на этой карте находится. Ясно, что тип object это ссылка, но как перебрать все-таки карты в модуле? В принципе , я уже нашел способ, но этот способ больно извращенный. Неужели в тулсете не предусмотрена все-таки более простая возможность?

Через ресрефы тоже плохо - они все разные, через расставленные вэйпоинты - тоже: их надо расставлять.

Объясню для чего мне нужен цикл по картам: дело в том, что на Сиале при сохранении положения персонажа, запоминается тэг локации. Если тэг одинаковый у двух карт, то с восстановлением положения могут быть проблемы. Так как карт у нас около 470, просматривать в тулсете тэг очень долго и муторно. Поэтому я хотел вывести тэги всех карт в текстовый файл или файл БД и потом каким - нибудь стандартным средством определить задвоение.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Oct 26 2004, 09:30
Сообщение #287


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



QUOTE (Тобур @ Oct 26 2004, 07:41)
Объясню для чего мне нужен цикл по картам: дело в том, что на Сиале при сохранении положения персонажа, запоминается тэг локации. Если тэг одинаковый у двух карт, то с восстановлением положения могут быть проблемы.

Хех, так в чем проблема запоминать НЕ ТЭГ ЛОКИ, а ЕЕ ОБЪЕКТ?! Уникально. Независимо от тэга?.. Возвращение перса опять-таки делать не по тэгу локи, а по ее объекту...
Добавлено в [mergetime]1098772792[/mergetime]
К тому же, обрати внимание на функцию ObjectToString(object oObj); ;) :yes:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Baal
сообщение Oct 26 2004, 10:51
Сообщение #288


Вечно исчезающий
Иконки Групп

Класс: Маг
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



QUOTE (Тобур @ Oct 26 2004, 04:41)

object oMod = GetModule();
int i = 1;
SetLocalObject(oMod,"CurMap",i);

Это мне вобще непонятно %) Как это объекту можно присвоить числовое значение? :swoon:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Тобур
сообщение Oct 26 2004, 18:49
Сообщение #289


Level 2
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]



QUOTE (DBColl @ Oct 26 2004, 09:30)
Хех, так в чем проблема запоминать НЕ ТЭГ ЛОКИ, а ЕЕ ОБЪЕКТ?! Уникально. Независимо от тэга?.. Возвращение перса опять-таки делать не по тэгу локи, а по ее объекту...
<small>Добавлено в [mergetime]1098772792[/mergetime]</small>
К тому же, обрати внимание на функцию ObjectToString(object oObj); ;) :yes:

Потому что при добавлении новой карты все индексы перестраиваются и со сменой версии модуля игрок может оказаться или не там, где выходил или вообще в стартовой локации. ObjectToString ничего мне не дает - вот если бы была функция StringToObject - это бы все меняло :). Главный мой вопрос - как присвоить переменной типа Object какое то значение, не не пользуясь ссылкой.

QUOTE
QUOTE (Тобур @ Oct 26 2004, 04:41)

object oMod = GetModule();
int i = 1;
SetLocalObject(oMod,"CurMap",i);


Это мне вобще непонятно  Как это объекту можно присвоить числовое значение? 


Я же специально привел ссылку из лексикона - object содержит в себе натуральное число (иначе говоря просто номер объекта). Весь вопрос в том и состоит - как переменной типа object присвоить этот самый номер.

Еще раз повторю - нету в НВН ни функции типа GetNextObjectInArea (только InModule), ни константы OBJECT_TYPE_ для ареи, чтобы выделить из массы объектов именно карту.

Короче, я понял, что тут никто толкового сказать не может :(
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Oct 27 2004, 00:19
Сообщение #290


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



QUOTE (Тобур @ Oct 26 2004, 18:49)
Короче, я понял, что тут никто толкового сказать не может

Спасибо за твою благодарность в сторону наших попыток помочь. Либо ты слишком умный, либо слишком много у нас времени и главное ДАННЫХ, которые ты представил в своей задаче... :xz: :this: Но так, как ты говоришь и высказываешь мнение о пытающихся помочь - не делается. Здесь, на форуме ВРГ, никто никому ничего не должен, а потерпеть и выудить решение все равно можно. Увы, твое терпение коротко...
QUOTE (Тобур @ Oct 26 2004, 18:49)
Еще раз повторю - нету в НВН ни функции типа GetNextObjectInArea (только InModule), ни константы OBJECT_TYPE_ для ареи, чтобы выделить из массы объектов именно карту.

Мне не нравится немного, что ты "еще раз повторяешь: НЕТУ РЕШЕНИЯ! ЧТО ВЫ МУЧАЕТЕСЬ?". Как будто, задавая вопрос и отвечая сам же на него потом нам, ты говоришь: НУ ВЫ И... КАК ВЫ МОГЛИ ПОДУМАТЬ ТОЛЬКО, ЧТО Я ТАКОГО НЕ ПРОБОВАЛ ДЕЛАТЬ?..
QUOTE (Тобур @ Oct 26 2004, 18:49)
Потому что при добавлении новой карты все индексы перестраиваются и со сменой версии модуля игрок может оказаться или не там, где выходил или вообще в стартовой локации.

Вообще-то индексы не перестраиваются. Они дописываются к последнему элементу.
QUOTE (Тобур @ Oct 26 2004, 18:49)
Главный мой вопрос - как присвоить переменной типа Object какое то значение, не не пользуясь ссылкой.

Ты бы лучше ПОДРОБНО объяснил задачу, а не задавал вопрос, ОТРИЦАТЕЛЬНЫЙ ответ на который, ты сам заранее уже знаешь и ждешь чтобы тебе его просто подтвердили.

Не спеши с выводами, а потерпи и решение придет. ;)

Я понял, тебе надо будет пробегать таким циклом по поиску лок лишь ОДИН раз, на старте модуля? Или я опять не догнал?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Shad
сообщение Oct 27 2004, 00:34
Сообщение #291


Level 3
*

Класс: Обыватель
Характер: Lawful Good
Раса: Человек



QUOTE (Тобур @ Oct 26 2004, 07:41)
Через ресрефы тоже плохо - они все разные

Можно сохранять ResRef для подтверждения правильности локации.
Но если пройти по модулю нужно один раз за версию - вопрос перешел в разряд теретических. Ведь какой-никакой метод, ты говришь, уже нашел.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Oct 27 2004, 00:46
Сообщение #292


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



QUOTE (Тобур @ Oct 26 2004, 07:41)
Поэтому я хотел вывести тэги всех карт в текстовый файл или файл БД и потом каким - нибудь стандартным средством определить задвоение.

Шо цэ есть, ЗАДВОЕНИЕ? :unsure:
Добавлено в [mergetime]1098827906[/mergetime]
QUOTE (Shad @ Oct 27 2004, 00:34)
Можно сохранять ResRef для подтверждения правильности локации.

Вот-вот. Отлично Shad! :yes: :good:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Тобур
сообщение Oct 27 2004, 07:52
Сообщение #293


Level 2
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]



Я извиняюсь за резкость. Я не правильно выразился и благодарен тем, кто откликнулся. Уважаю ваш сайт и форум за нейтральность по отношению к шардам и их разборкам и открытость по отношению к игрокам. Ваш форум - это своеобразная "нейтральная территория", накоторой могут общаться все коммьюнити НВН.
Решение я нашел такое: Я сохраняю в БД какую-то локацию, потом каким-то внешним редактором (в моем случае FoxPro) правлю DBF файл и соэдаю в нем 64000 записи с последовательно увеличивающимся индексом и названием переменной (В моем случае MAP1 , 2 и т.д.), в которой присутствует индекс. Затем в скрипте загрузки модуля вставляю следующий текст:

void CheckAreaTag()
{
object oMod = GetModule();
int iCur = GetLocalInt(oMod,"CurCount");
if (iCur < 64000)
{
WriteTimestampedLogEntry(" ~ Continue ~ "+IntToString(iCur));
int iBegin = iCur;
iCur = iCur +2000;
SetLocalInt(oMod,"CurCount",iCur);
object oArea;
object oTemp;
location lLoc;
string sVarName;
int i;
for (i = iBegin; i < iCur; i++)
{
sVarName = "MAP"+IntToString(i);
lLoc = GetCampaignLocation("TEST",sVarName);
oArea = GetAreaFromLocation(lLoc);
if (GetIsAreaNatural(oArea)!=AREA_INVALID)
WriteTimestampedLogEntry(sVarName + " id "+IntToString(i)+" ; "+"object "+ObjectToString(oArea)+" ; "+GetTag(oArea)+" ; "+GetName(oArea)+" ; "+GetResRef(oArea));
}
DelayCommand(2.0f, CheckAreaTag());

}
else
WriteTimestampedLogEntry(" ~ End ~ "+ IntToString(iCur));

}
void main()
{
WriteTimestampedLogEntry(" ~ Begin check area tag ~ ");
CheckAreaTag();
}

Получившийся текстовый лог-файл открываю в Exсel-e и сохраняю как таблицу (поля я специально разделяю знаком ; , так как Exсel понимает этот знак как разделитель. Дальше уже в Exсel-e можно сортировать , фильтровать и анализировать записи. Таким же образом можно получить сводную информацию обо всех объектах, находящихся на картах в модуле (не в палитре), например о НПС и плэйсэйблах
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 27 2004, 09:41
Сообщение #294


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Тобур даже я вчера до двух ночи голову ломал. ;) Зря ты так :drag:
QUOTE (Тобур @ Oct 27 2004, 10:52)
Я извиняюсь за резкость. Я не правильно выразился и благодарен тем, кто откликнулся. Уважаю ваш сайт и форум за нейтральность по отношению к шардам и их разборкам и открытость по отношению к игрокам. Ваш форум - это своеобразная "нейтральная территория", накоторой могут общаться все коммьюнити НВН.

Все ок! ;) ТО что ты сейчас сказал настолько важно, к примеру для меня :crazy: Ты даже не представляешь :yes: Заходи к нам почаще! :drag: Все плохое забыли :good: И молодец, что победил проблему. Кинь ее в базу скриптов, очень людям поможешь.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Oct 27 2004, 17:53
Сообщение #295


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



Тобур
Все ок ;). Ты - взрослый человек. :good:

По делу... А дальше что? Ну есть у тебя экселевский файл. И что с ним делать дальше? Я думал тебе данные нужны для обратного использования потом в скрипте... :unsure:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 10 11 12 13 14 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 7th July 2025 - 20:06