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

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


audun
Отправлено: Dec 8 2007, 17:27


Level 1


Группа: Newbie
Сообщений: 2
Регистрация: 07.12.2007
Из: С-Пб
Пользователь №: 4,907


Цитата(Aiwan @ Dec 7 2007, 22:39) *
Обычно функция описывается. надо навести на нее курсор и в инфопанели внизу будет описание.


Как ни печально, но описания этих отладочных функций(PrettyDebug,PrettyError) в инфопанели я не нашел.

Цитата
Но честно, говоря лучше сделать простую дебаг инклюду и пользоваться.


Подключать к рабочему скрипту свой отладочный? Зачем писать свой, если есть уже написанные?

Цитата
Вы собсвенно что хотите увидеть в дебаге?


Давайте попробуем по порядку:

Возьмем глобальный скрипт :
Neverwinter Script Source

// ga_influence( int nCompanion, int nChange )
/* This adjusts the influence rating of the companion to the PC ( the players as a whole technically ).
  The influence rating is based on a scale between -100( worst ) and 100( best ). ( 0 being neutral )

  Parameters:
    int nCompanion  = This is the integer value of the companion to adjust. ( See ginc_companions )
    int nChange    = This is the amount to adjust influence by.

    1    Khelgar
    2    Neeshka
    3    Elanee
    4    Qara
    5    Sand
    6    Grobnar
    7    Casavir
    8    Bishop
    9    ShandraJerro
    10    Construct
    11    Zhjaeve
    12    AmmonJerro
    13  Bevil
*/
// FAB 10/4
// ChazM 5/4/05
// BMA 5/5/05 ginc_companions id look up
// BMA-OEI 8/22/05 added companion id table
// ChazM 12/16/05 added bevil
// ChazM 4/18/06 prepped for adding influence indicator
// ChazM 4/25/06 added string ref constants
// ChazM 5/1/06 fixed "temp text" bug.
// EPF 7/10/06 - added debug strings for balance testing
// BMA-OEI 7/10/06 -- Updated to use GetInfluenceByNumber( )
       
#include "kinc_companion"

const int    STRING_REF_LOST_INFLUENCE     = 178842;
const int    STRING_REF_GAINED_INFLUENCE = 178841;

int GetCompanionNameStringRef( int nCompanion )
{
    // companions str refs are 178843 - 178855
    return ( 178842 + nCompanion );
}

void main( int nCompanion, int nChange )
{
    if ( nChange == 0 )
    {
        PrettyError( "ga_influence: companion " + IntToString( nCompanion ) + " no influence change" );
        return;
    }
   
    int nOldInfluence = GetInfluenceByNumber( nCompanion );
    IncInfluenceByNumber( nCompanion, nChange );
    int nNewInfluence = GetInfluenceByNumber( nCompanion );
   
    string sOut;
    int nDelta = nNewInfluence - nOldInfluence; //nChange; // Actual nDelta may not == nChange
    if ( nDelta > 0 )
        sOut = GetStringByStrRef( STRING_REF_GAINED_INFLUENCE );
    else
        sOut = GetStringByStrRef( STRING_REF_LOST_INFLUENCE );

    sOut += " " + GetStringByStrRef( GetCompanionNameStringRef( nCompanion )) + ": " + IntToString( nDelta );
   
    object oPC = ( GetPCSpeaker( )==OBJECT_INVALID?OBJECT_SELF:GetPCSpeaker( ) );
    SendMessageToPC( oPC, sOut );
    PrettyDebug( sOut );
    PrettyDebug( "Total influence with " + GetStringByStrRef( GetCompanionNameStringRef( nCompanion )) + " = " + IntToString( nNewInfluence ));
}


31 строка:
Цитата
// EPF 7/10/06 - added debug strings for balance testing

и далее в теле идут отладочные функции PrettyError и PrettyDebug
Раз авторы их добавлялм ,они ими пользовались.
Значит режим отладки где то должен включаться. Во встроенных функциях этих нет.
Вопросы:
могут эти функции быть только в тулсете, а не в игре?
Возможно ли их как то задействовать в самой игре?
Как вариант , могут ли они после завершения создания модуля удалены из тулсета/игры?
Существует ли в тулсете система отладки скриптов, (которая мне не известна,но может быть известна вам)?


Цитата
Дебаг НВН-а это место куда идут все сообщения во время игры.
Внизу окно такое растягивается.


Мы говорим об окне сообщений, или о чем то другом?

В режиме DebugMode 0 все сообщения в игре отправляются в окно сообщений, в частности строка :
Цитата
SendMessageToPC( oPC, sOut );

А при включенном режиме DebugMode 1 некоторые команды ,например showfps выводятся просто на экран. Значит стандартный вывод
можно менять?
А вэтих строках получается , что выводится 3 сообщения:
Цитата
SendMessageToPC( oPC, sOut ); // вывод в окно сообщений
PrettyDebug( sOut ); // повторение той же строки не понятно куда
PrettyDebug("Total influence with " + GetStringByStrRef(GetCompanionNameStringRef(nCompa
ion)) + " = " + IntToString(nNewInfluence));
// и вывод третьей строки с отладочной информацией


Вот и все же хотелось бы узнать как режим включить если это возможно,
и как сделать такой вывод отладки во время игры(с возможностью отключения конечно) как в своих скриптах,так и в оригинальных(раз уж функции там уже прописаны).
Как вариант ,как выводить просто текст на экран в любом произвольном месте,накладывая на игру, возможно ли это?
  Форум: Neverwinter Nights 2 Obsidian Toolset · Просмотр сообщения: #116298 · Ответов: 336 · Просмотров: 217,990

audun
Отправлено: Dec 7 2007, 20:37


Level 1


Группа: Newbie
Сообщений: 2
Регистрация: 07.12.2007
Из: С-Пб
Пользователь №: 4,907


Здравствуйте уважаемые мастера.
Вот наткнулся в скриптах на отладочную функцию:

Neverwinter Script Source

      PrettyDebug( sOut );
      PrettyDebug( "Total influence with " + GetStringByStrRef( GetCompanionNameStringRef( nCompanion )) + " = " + IntToString( nNewInfluence ));


ИМХО понятно, что срабатывает она при включении отладки и выводит текст.

Вопрос:
1.где и как включается этот отладочный режим.
2. куда выводиться отладочная информация(окно сообщений,экран, что нить особое...).

P.S. Сорри, если вопрос нубский или написал не в том топике, прошу не бить больно (IMG:style_emoticons/kolobok_light/smile.gif)
P.P.S.(поиск юзал (IMG:style_emoticons/kolobok_light/sad.gif) )
  Форум: Neverwinter Nights 2 Obsidian Toolset · Просмотр сообщения: #116269 · Ответов: 336 · Просмотров: 217,990


Есть новые сообщения  Открытая тема (есть новые ответы)
Нет новых сообщений  Открытая тема (нет новых ответов)
Горячая тема (есть новые сообщения)  Горячая тема (есть новые ответы)
Горячая тема (нет новых сообщений)  Горячая тема (нет новых ответов)
Опрос (есть новые голоса)  Опрос (есть новые голоса)
Опрос (нет новых голосов)  Опрос (нет новых голосов)
Тема закрыта  Закрытая тема
Тема перемещена  Тема перемещена
 

Текстовая версия Сейчас: 29th March 2024 - 04:32