bool Creature::isBotGiver() { std::string scriptname = GetScriptName(); if( scriptname == "bot_giver" ) return true; return false; }
void ScriptMgr::InitScriptLibrary() { LoadDatabase(); outstring_log("StrawberryScripts: Loading C++ scripts"); BarGoLink bar(1); bar.step(); outstring_log(""); // Resize script ids to needed ammount of assigned ScriptNames (from core) m_scripts.resize(GetScriptIdsCount(), NULL); FillSpellSummary(); AddScripts(); // Check existance scripts for all registered by core script names for (uint32 i = 1; i < GetScriptIdsCount(); ++i) { if (!m_scripts[i]) error_log("SSC: No script found for ScriptName '%s'.", GetScriptName(i)); } outstring_log(">> Loaded %i C++ Scripts.", num_sc_scripts); }
void CEUtils_Request::Connect(void) { string url = GetBaseURL() + GetScriptName(); string body = GetQueryString(); STimeout timeout_value; const STimeout* timeout = g_CTimeoutToSTimeout(GetConnContext()->GetTimeout(), timeout_value); if ( m_Method == eHttp_Post ) { m_Stream.reset(new CConn_HttpStream( url, NULL, "Content-type: application/x-www-form-urlencoded", NULL, NULL, NULL, NULL, fHTTP_AutoReconnect, timeout)); *m_Stream << body; } else { m_Stream.reset(new CConn_HttpStream( url + "?" + body, fHTTP_AutoReconnect, timeout)); } }
MANGOS_DLL_EXPORT void InitScriptLibrary() { // ScriptDev2 startup outstring_log(""); outstring_log(" MMM MMM MM"); outstring_log("M MM M M M M"); outstring_log("MM M M M"); outstring_log(" MMM M M M"); outstring_log(" MM M M MMMM"); outstring_log("MM M M M "); outstring_log(" MMM MMM http://www.scriptdev2.com"); outstring_log(""); // Get configuration file bool configFailure = false; if (!SD2Config.SetSource(_MANGOSD_CONFIG)) configFailure = true; else outstring_log("SD2: Using configuration file %s", _MANGOSD_CONFIG); // Set SD2 Error Log File std::string sd2LogFile = SD2Config.GetStringDefault("SD2ErrorLogFile", "SD2Errors.log"); setScriptLibraryErrorFile(sd2LogFile.c_str(), "SD2"); if (configFailure) script_error_log("Unable to open configuration file. Database will be unaccessible. Configuration values will use default."); // Check config file version if (SD2Config.GetIntDefault("ConfVersion", 0) != _MANGOSDCONFVERSION) script_error_log("Configuration file version doesn't match expected version. Some config variables may be wrong or missing."); outstring_log(""); // Load database (must be called after SD2Config.SetSource). LoadDatabase(); outstring_log("SD2: Loading C++ scripts"); BarGoLink bar(1); bar.step(); outstring_log(""); // Resize script ids to needed ammount of assigned ScriptNames (from core) m_scripts.resize(GetScriptIdsCount(), NULL); FillSpellSummary(); AddScripts(); // Check existance scripts for all registered by core script names for (uint32 i = 1; i < GetScriptIdsCount(); ++i) { if (!m_scripts[i]) script_error_log("No script found for ScriptName '%s'.", GetScriptName(i)); } outstring_log(">> Loaded %i C++ Scripts.", num_sc_scripts); }
void InfoPoint::dump() const { StringBuffer buffer; switch (Type) { case ST_TRIGGER: buffer.appendFormatted( "Debugdump of InfoPoint Region %s:\n", GetScriptName() ); break; case ST_PROXIMITY: buffer.appendFormatted( "Debugdump of Trap Region %s:\n", GetScriptName() ); break; case ST_TRAVEL: buffer.appendFormatted( "Debugdump of Travel Region %s:\n", GetScriptName() ); break; default: buffer.appendFormatted( "Debugdump of Unsupported Region %s:\n", GetScriptName() ); break; } buffer.appendFormatted( "Region Global ID: %d\n", GetGlobalID()); buffer.appendFormatted( "Position: %d.%d\n", Pos.x, Pos.y); buffer.appendFormatted( "TalkPos: %d.%d\n", TalkPos.x, TalkPos.y); buffer.appendFormatted( "UsePoint: %d.%d (on: %s)\n", UsePoint.x, UsePoint.y, YESNO(GetUsePoint())); switch(Type) { case ST_TRAVEL: buffer.appendFormatted( "Destination Area: %s Entrance: %s\n", Destination, EntranceName); break; case ST_PROXIMITY: buffer.appendFormatted( "TrapDetected: %d, Trapped: %s\n", TrapDetected, YESNO(Trapped)); buffer.appendFormatted( "Trap detection: %d%%, Trap removal: %d%%\n", TrapDetectionDiff, TrapRemovalDiff ); break; case ST_TRIGGER: buffer.appendFormatted ( "InfoString: %ls\n", OverheadText.c_str() ); break; default:; } const char *name = "NONE"; if (Scripts[0]) { name = Scripts[0]->GetName(); } buffer.appendFormatted( "Script: %s, Key: %s, Dialog: %s\n", name, KeyResRef, Dialog ); buffer.appendFormatted( "Deactivated: %s\n", YESNO(Flags&TRAP_DEACTIVATED)); buffer.appendFormatted( "Active: %s\n", YESNO(InternalFlags&IF_ACTIVE)); Log(DEBUG, "InfoPoint", buffer); }
MANGOS_DLL_EXPORT void InitScriptLibrary() { // ScriptDev2 startup outstring_log(""); outstring_log(" MMM MMM MM"); outstring_log("M MM M M M M"); outstring_log("MM M M M"); outstring_log(" MMM M M M"); outstring_log(" MM M M MMMM"); outstring_log("MM M M M "); outstring_log(" MMM MMM http://www.scriptdev2.com"); outstring_log("R2 modifications included (https://github.com/mangosR2/scriptdev2)"); outstring_log(_VERSION); // Get configuration file if (!SD2Config.SetSource(_SCRIPTDEV2_CONFIG)) error_log("SD2: Unable to open configuration file. Database will be unaccessible. Configuration values will use default."); else outstring_log("SD2: Using configuration file %s",_SCRIPTDEV2_CONFIG); // Check config file version if (SD2Config.GetIntDefault("ConfVersion", 0) != SD2_CONF_VERSION) error_log("SD2: Configuration file version doesn't match expected version. Some config variables may be wrong or missing."); outstring_log(""); // Load database (must be called after SD2Config.SetSource). LoadDatabase(); outstring_log("SD2: Loading C++ scripts"); BarGoLink bar(1); bar.step(); outstring_log(""); // Resize script ids to needed ammount of assigned ScriptNames (from core) m_scripts.resize(GetScriptIdsCount(), NULL); m_scriptStorage.clear(); FillSpellSummary(); AddScripts(); // Check existance scripts for all registered by core script names for (uint32 i = 1; i < GetScriptIdsCount(); ++i) { if (!m_scripts[i]) error_log("SD2: No script found for ScriptName '%s'.", GetScriptName(i)); } outstring_log(">> Loaded %i C++ Scripts.", num_sc_scripts); }
/////////////////////////////////////////////////////////////// // // CLuaMain::CheckExecutionTime // // Issue warning if execution time is too long // /////////////////////////////////////////////////////////////// void CLuaMain::CheckExecutionTime( void ) { // Do time check if ( m_WarningTimer.Get() < 5000 ) return; m_WarningTimer.Reset(); // No warning if no players if ( g_pGame->GetPlayerManager()->Count() == 0 ) return; // Issue warning about script execution time CLogger::LogPrintf ( "WARNING: Long execution (%s)\n", GetScriptName () ); }
void Door::DebugDump() const { print( "Debugdump of Door %s:\n", GetScriptName() ); print( "Door Global ID: %d\n", GetGlobalID()); print( "Position: %d.%d\n", Pos.x, Pos.y); print( "Door Open: %s\n", YESNO(IsOpen())); print( "Door Locked: %s\n", YESNO(Flags&DOOR_LOCKED)); print( "Door Trapped: %s Difficulty: %d\n", YESNO(Trapped), TrapRemovalDiff); if (Trapped) { print( "Trap Permanent: %s Detectable: %s\n", YESNO(Flags&DOOR_RESET), YESNO(Flags&DOOR_DETECTABLE) ); } print( "Secret door: %s (Found: %s)\n", YESNO(Flags&DOOR_SECRET),YESNO(Flags&DOOR_FOUND)); const char *Key = GetKey(); const char *name = "NONE"; if (Scripts[0]) { name = Scripts[0]->GetName(); } print( "Script: %s, Key (%s) removed: %s, Dialog: %s\n", name, Key?Key:"NONE", YESNO(Flags&DOOR_KEY), Dialog ); }
CXMLFile * CLuaMain::CreateXML ( const char * szFilename ) { CXMLFile * pFile = g_pServerInterface->GetXML ()->CreateXML ( szFilename, true ); if ( pFile ) { m_XMLFiles.push_back ( pFile ); if ( m_XMLFiles.size() >= m_uiOpenXMLFileCountWarnThresh ) { m_uiOpenXMLFileCountWarnThresh = m_XMLFiles.size() * 2; CLogger::LogPrintf ( "Notice: There are now %d open XML files in resource '%s'\n", m_XMLFiles.size(), GetScriptName() ); } } return pFile; }
// Keep count of the number of open files in this resource and issue a warning if too high void CLuaMain::OnOpenFile( const SString& strFilename ) { m_OpenFilenameList.push_back( strFilename ); if ( m_OpenFilenameList.size() >= m_uiOpenFileCountWarnThresh ) { m_uiOpenFileCountWarnThresh = m_OpenFilenameList.size() * 2; CLogger::LogPrintf ( "Notice: There are now %d open files in resource '%s'\n", m_OpenFilenameList.size(), GetScriptName() ); } }
void CGenPropertyPage::OnAddItem(CDialog & dlg) { // load dialog with default values InitDialog (&dlg); // display dialog, exit if cancelled if (dlg.DoModal () != IDOK) return; // create the object's lookup name (label converted to lower case, or generated) CObject * pItem; CString strObjectName; strObjectName = GetObjectName (&dlg); if (strObjectName.IsEmpty ()) strObjectName.Format ("*%s%s", // e.g. *trigger100 (LPCTSTR) m_strObjectType, (LPCTSTR) App.GetUniqueString ()); else strObjectName.MakeLower(); // if already there (presumably not possible with un-named objects), // then abort the add if (m_ObjectMap->Lookup (strObjectName, pItem)) { CString strMsg; strMsg = TFormat ("The %s named \"%s\" is already in the %s list", (LPCTSTR) m_strObjectType, (LPCTSTR) GetObjectName (&dlg), (LPCTSTR) m_strObjectType); ::UMessageBox (strMsg); return; } // add new object to map m_ObjectMap->SetAt (strObjectName, pItem = MakeNewObject ()); // unload from dialog into object's properties UnloadDialog (&dlg, pItem); // They can no longer cancel the property sheet, the document has changed CancelToClose (); if (!CheckIfTemporary (pItem)) m_doc->SetModifiedFlag (TRUE); // create a CString for lookup purposes CString * pstrObjectName = new CString (strObjectName); // add this item to the list view add_item (pItem, pstrObjectName, 0, TRUE); SetInternalName (pItem, strObjectName); // set name so we can delete one-shot items // resort the list t_gen_sort_param sort_param (m_ObjectMap, m_last_col, m_reverse, m_CompareObjects); m_ctlList->SortItems (CompareFunc, (LPARAM) &sort_param); // redraw the list if (GetFilterFlag ()) LoadList (); // full reload because it may have changed filter requirements // get dispatch id from the script and put it into the item if (m_doc->m_ScriptEngine) { CString strMessage; SetDispatchID (pItem, m_doc->GetProcedureDispid (GetScriptName (pItem), m_strObjectType, GetLabel (pItem), strMessage)); if (!strMessage.IsEmpty ()) ::UMessageBox (strMessage, MB_ICONINFORMATION); } } // end of CGenPropertyPage::OnAddItem
void CGenPropertyPage::OnChangeItem(CDialog & dlg) { CString strMsg; // iterate through list in case we implement multiple selection one day for (int nItem = -1; (nItem = m_ctlList->GetNextItem(nItem, LVNI_SELECTED)) != -1;) { // get the lower-case name of this item's object CString * pstrObjectName = (CString *) m_ctlList->GetItemData (nItem); ASSERT (pstrObjectName != NULL); CObject * pItem; // check object is still there (it might have gone while we looked at the list box) if (!m_ObjectMap->Lookup (*pstrObjectName, pItem)) { m_ctlList->DeleteItem (nItem); // it's gone, so delete it from the list view m_ctlList->RedrawItems (0, m_ctlList->GetItemCount () - 1); // redraw the list // in the case of one-shot timers, unnamed items might be removed from the list if (pstrObjectName->Left (1) == "*") strMsg = TFormat ("The %s you selected is no longer in the %s list", (LPCTSTR) m_strObjectType, (LPCTSTR) m_strObjectType); else strMsg = TFormat ("The %s named \"%s\" is no longer in the %s list", (LPCTSTR) m_strObjectType, (LPCTSTR) *pstrObjectName, (LPCTSTR) m_strObjectType); ::UMessageBox (strMsg); delete pstrObjectName; // and get rid of its name string continue; } ASSERT_VALID (pItem); ASSERT( pItem->IsKindOf( RUNTIME_CLASS( CObject ) ) ); // load dialog with values from the found item LoadDialog (&dlg, pItem); // put up the dialog, give up if they cancel if (dlg.DoModal () != IDOK) continue; // lookup this object, to make sure it still exists if (!m_ObjectMap->Lookup (*pstrObjectName, pItem)) { m_ctlList->DeleteItem (nItem); // it's gone, so delete it from the list view m_ctlList->RedrawItems (0, m_ctlList->GetItemCount () - 1); // redraw the list // in the case of one-shot timers, unnamed items might be removed from the list if (pstrObjectName->Left (1) == "*") strMsg = TFormat ("The %s you selected is no longer in the %s list", (LPCTSTR) m_strObjectType, (LPCTSTR) m_strObjectType); else strMsg = TFormat ("The %s named \"%s\" is no longer in the %s list", (LPCTSTR) m_strObjectType, (LPCTSTR) *pstrObjectName, (LPCTSTR) m_strObjectType); delete pstrObjectName; // and get rid of its name string ::UMessageBox (strMsg); continue; } ASSERT_VALID (pItem); ASSERT( pItem->IsKindOf( RUNTIME_CLASS( CObject ) ) ); if (CheckIfIncluded (pItem)) { strMsg = TFormat ("The %s named \"%s\" has been included from an include file. You cannot modify it here.", (LPCTSTR) m_strObjectType, (LPCTSTR) *pstrObjectName); ::UMessageBox (strMsg); return; // can't modify included items } // check object still has the same modification number // (it might have been modified while we looked at the list box) if (GetModificationNumber (pItem) != m_nUpdateNumber) { strMsg = TFormat ("The %s named \"%s\" has already been modified by a script subroutine", (LPCTSTR) m_strObjectType, (LPCTSTR) *pstrObjectName); ::UMessageBox (strMsg); continue; } // check for name change CString strObjectName = GetObjectName (&dlg); if (strObjectName.IsEmpty ()) strObjectName.Format ("*%s%s", (LPCTSTR) m_strObjectType, (LPCTSTR) App.GetUniqueString ()); else strObjectName.MakeLower (); if (strObjectName != *pstrObjectName) // has name changed? { // here if label has changed CObject * new_pItem; if (m_ObjectMap->Lookup (strObjectName, new_pItem)) { strMsg = TFormat ("The %s named \"%s\" already exists in the %s list", (LPCTSTR) m_strObjectType, (LPCTSTR) strObjectName, (LPCTSTR) m_strObjectType); ::UMessageBox (strMsg); continue; } // remove old entry and re-add under new name m_ObjectMap->RemoveKey (*pstrObjectName); // remove old entry m_ObjectMap->SetAt (strObjectName, pItem); // insert under new name // delete old name in the list delete pstrObjectName; // create a new CString for lookup purposes pstrObjectName = new CString (strObjectName); // record item's new name as the list object data m_ctlList->SetItemData(nItem, (DWORD) pstrObjectName); } // end of label changing // see if the user changed anything, anyway if (CheckIfChanged (&dlg, pItem)) { // unload from dialog into object's properties UnloadDialog (&dlg, pItem); // They can no longer cancel the property sheet, the document has changed CancelToClose (); if (!CheckIfTemporary (pItem)) m_doc->SetModifiedFlag (TRUE); // re-setup list with amended details int nNewItem = add_item (pItem, pstrObjectName, nItem, FALSE); m_ctlList->RedrawItems (nNewItem, nNewItem); } // end of item changing // Get dispatch id from the script and put it into the item. // We do this even if nothing has changed, so that we can force re-evaluation // of the dispatch ID, by just getting the item and pressing OK. if (m_doc->m_ScriptEngine) { CString strMessage; SetDispatchID (pItem, m_doc->GetProcedureDispid (GetScriptName (pItem), m_strObjectType, GetLabel (pItem), strMessage)); if (!strMessage.IsEmpty ()) ::UMessageBox (strMessage, MB_ICONINFORMATION); } } // end of dealing with each selected item // redraw the list if (GetFilterFlag ()) LoadList (); // full reload because it may have changed filter requirements // resort the list t_gen_sort_param sort_param (m_ObjectMap, m_last_col, m_reverse, m_CompareObjects); m_ctlList->SortItems (CompareFunc, (LPARAM) &sort_param); } // end of CGenPropertyPage::OnChangeItem
void SD3::InitScriptLibrary() { // ScriptDev3 startup outstring_log(" ___ _ _ ___ ____"); outstring_log(" / __| __ _ _(_)_ __| |_| \\ _____ __ |__ /"); outstring_log(" \\__ \\/ _| '_| | '_ \\ _| |) / -_) V / |_ \\"); outstring_log(" |___/\\__|_| |_| .__/\\__|___/\\___|\\_/ |___/"); outstring_log(" |_| "); outstring_log(" https://getmangos.eu/\n"); // Get configuration file bool configFailure = false; if (!SD3Config.SetSource(MANGOSD_CONFIG_LOCATION)) { configFailure = true; } else { outstring_log("sd3: Using configuration file %s", MANGOSD_CONFIG_LOCATION); } // Set SD3 Error Log File std::string SD3LogFile = SD3Config.GetStringDefault("SD3ErrorLogFile", "scriptdev3-errors.log"); setScriptLibraryErrorFile(SD3LogFile.c_str(), "SD3"); if (configFailure) { script_error_log("Unable to open configuration file. Database will be unaccessible. Configuration values will use default."); } // Check config file version if (SD3Config.GetIntDefault("ConfVersion", 0) != MANGOSD_CONFIG_VERSION) { script_error_log("Configuration file version doesn't match expected version. Some config variables may be wrong or missing."); } outstring_log("\n"); // Load database (must be called after SD3Config.SetSource). LoadDatabase(); outstring_log("sd3: Loading C++ scripts"); BarGoLink bar(1); bar.step(); // Resize script ids to needed ammount of assigned ScriptNames (from core) m_scripts.resize(GetScriptIdsCount(), NULL); FillSpellSummary(); AddScripts(); // Check existance scripts for all registered by core script names for (uint32 i = 1; i < GetScriptIdsCount(); ++i) { if (!m_scripts[i]) { script_error_log("No script found for ScriptName '%s'.", GetScriptName(i)); } } outstring_log(">> Loaded %i C++ Scripts.", num_sc_scripts); }