Цитата(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));
// и вывод третьей строки с отладочной информацией
Вот и все же хотелось бы узнать как режим включить если это возможно,
и как сделать такой вывод отладки во время игры(с возможностью отключения конечно) как в своих скриптах,так и в оригинальных(раз уж функции там уже прописаны).
Как вариант ,как выводить просто текст на экран в любом произвольном месте,накладывая на игру, возможно ли это?