Кто как дебагит модуль если он здоровый, а нужно оказаться в определенном месте с определенными значениями на тебе и на мире?

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(){} |
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); } |