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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
> Помошь -> способы дебага
Tonakien
сообщение Jul 30 2005, 14:32
Сообщение #1


Level 1


Класс: Маг
Характер: True Neutral
Раса: Эльф



Просьба о помощи...
Кто как дебагит модуль если он здоровый, а нужно оказаться в определенном месте с определенными значениями на тебе и на мире? :xz:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
 
Открыть новую тему
Ответов
Aiwan
сообщение Jul 31 2005, 09:15
Сообщение #2


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

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



Если тебе поможет, вот моя инклюда.
Neverwinter Script Source
//::///////////////////////////////////////////////
//:: Name: am_inc_debug
//:: Copyright © 2005 WRG!
//:://////////////////////////////////////////////
/*
          БИБЛИОТЕКА ДЛЯ ОТЛАДКИ СКРИПТОВ
*/

//:://////////////////////////////////////////////
//:: Created By: Aiwan      Aiwan@e-mail.ru
//:: Created On: 30.05.2005
//:://////////////////////////////////////////////

// СООБЩЕНИЯ ДЛЯ ПРОВЕРКИ (ИСПОЛЬЗУЮТСЯ В СЛУЖЕБНЫХ ЦЕЛЯХ ДЛЯ ОТЛАДКИ КОДА СКРИПТОВ)
// А ТАК ЖЕ ДЛЯ ДМ-ов
// LocalInt - "DEBAG_PC" на модуле, отключит дебаг игрокам
// LocalInt - "DEBAG_DM" на модуле, отключит дебаг DM-ам
void Debug(string message);
// Выводит в Debug: TAG, ResRef и Name объекта.
void DebugObject(object oObject);

//------------------------------------------------------------------------------
void Debug(string message)
{
    object oPC = GetFirstPC();
    if (!GetLocalInt(GetModule(), "DEBAG_PC"))
    {
      SendMessageToPC(oPC, "Debag message: "+message);
    }
    if (!GetLocalInt(GetModule(), "DEBAG_DM"))
          {
            SendMessageToAllDMs("Debag message to DMs: "+message);
          }
}
void DebugObject(object oObject)
{
    string sTag = GetTag(oObject);
    string sResRef = GetResRef(oObject);
    string sName = GetName(oObject);
    Debug ("TAG = "+sTag+", ResRef = "+sResRef+",  Name = "+sName+".");
}
/*
void main(){}


В коде просто ставь проверки и мессаги. К примеру объект который взял итем или последний кто умер или сказал... Продебагь его. И часто оказывается что это не тот о ком ты думал. :D Удачи!

ВНИЗУ ПРИМРЫ КАК Я ИСПОЛЬЗУЮ ЭТИ ФУНКЦИИ.

Neverwinter Script Source
//========================== HEARTBEAT EVENT  =================================
  if (nEvent == 1001// Стандартный сигнал
      {
      Debug("EVENT_HEARTBEAT");
      if (GetLocalInt(OBJECT_SELF, "START_CONVERSATION")==FALSE)
        {
          Debug("RETURN");
          return;
          }
      object oEnemy = OBJECT_SELF;
      object oPC = GetNearestPC(oEnemy);
      if (GetIsInCombat(oPC) || GetIsInCombat(oEnemy) || IsInConversation(oPC))
          {
          Debug("РС или НПС занят, что то мешает им поговорить.");
          return;
          }
          if (GetLocalInt(oEnemy, "START_CONVERSATION")==TRUE
              && GetLocalInt(oEnemy, "REPEAT")==TRUE)
              {
              AssignCommand(oEnemy, ClearAllActions());
              AssignCommand(oEnemy, ActionForceMoveToObject(oPC,TRUE, 2.0, 15.0));
              AssignCommand(oEnemy, ActionStartConversation(oPC));
              Debug("Если главарь не смог подойти и поговорить, напомним об этом");
              SetLocalInt(oEnemy, "REPEAT", FALSE);
              DelayCommand(15.0, SetLocalInt(oEnemy, "REPEAT", TRUE));
              }
      }


Neverwinter Script Source
//------------------------------------------------------------------------------
    if (GetHasInventory(oDestr) && GetTag(oDestr)=="BodyBag")
    {
      object oItem = GetFirstItemInInventory(oDestr);
      while (GetIsObjectValid(oItem))
      {
        string sTag = GetTag(oItem); // Debag message
        Debug("Destroy Item - "+sTag);
        DestroyObject(oItem);
        oItem = GetNextItemInInventory(oDestr);
      }
      string sTag = GetTag(oDestr); // Debag message
      string sResRef = GetResRef(oDestr);
      Debug("Destroy Object - "+sTag+" Resref-"+sResRef); // Debag message
      DestroyObject(oDestr);
    }
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 30th April 2025 - 14:56