lecails
-
Posts
177 -
Joined
-
Last visited
Never -
Donations
0.00 GBP
Content Type
Profiles
Bug Tracker
Wiki
Release Notes
Forums
Downloads
Blogs
Events
Posts posted by lecails
-
-
In database there is not zone specification field for creature, because this is an incorrect think, so you need to revert manually each modification
-
Have you try whith a clean repository, I think mtmaps can interact whith this.Still crashing... -
what do you mean about "role"?
Maybe you would to be a boss so use .morph command and macro .cast for spell
-
Awesome improvement.
-
I see this patch there is a long time (by laise) for multipet support but need more improvement, seek in the forum. There is not a tutorial as the mangos installation, because every spell are different, we can't make a general turorial, you can just learn the base of coding in mangos and understand how its working.
He hasn't replied in 3 months, so I assume he is a master of spells by now.
Yes I think too ^^
-
I think you mangosd crash when you log in.Put mangosd log .its too possible who you are an incompatible client version.
-
1. mysql -u -p database
2. source sqlfilepath/file.sql
The exact command to import is : mysql -u -p database_name < yourfile.sql
-
See how ACID work on the ScriptDev2 forum.--[[ Demon Cave Boss Scripts version 0.2 by Korn ]] -- functions function Tallulah_OnCombat(Unit, Event) Unit:SendChatMessage(14, 0, "Welcome to hell!!") Unit:SendChatMessage(42, 0, "Boss fight started!!") Unit:RegisterEvent("Tallulah_Phase1", 1000, 0) end function Tallulah_Phase1(Unit, Event) -- Phase 1 if ( Unit:GetHealthPct() <= 99 ) then Unit:RemoveEvents() Unit:SendChatMessage(42, 0, "Phase 1 Started") Unit:SendChatMessage(14, 0, "I have never beaten!!") Unit:RegisterEvent("Tallulah_Brood_Affliction_Bronze", 60000, 1) Unit:RegisterEvent("Tallulah_Flame_Breath", 30000, 0) Unit:RegisterEvent("Tallulah_Phase2", 1000, 0) end end function Tallulah_Phase2(Unit, Event) -- Phase 2 if ( Unit:GetHealthPct() <= 80 ) then Unit:RemoveEvents() Unit:SetModel(31165) Unit:SetScale(1.0) Unit:SendChatMessage(42, 0, "Phase 2 Started") Unit:SendChatMessage(14, 0, "You think you know me!") Unit:RegisterEvent("Tallulah_Brood_Affliction_Bronze", 60000, 1) Unit:RegisterEvent("Tallulah_Flame_Breath", 30000, 0) Unit:RegisterEvent("Tallulah_Necrotic_Plague", 45000, 0) Unit:RegisterEvent("Tallulah_Phase3", 1000, 0) end end function Tallulah_Phase3(Unit, Event) -- Phase 3 if (Unit:GetHealthPct() <= 50 ) then Unit:RemoveEvents() Unit:SetModel(31165) Unit:SetScale(1.0) Unit:SendChatMessage(42, 0, "Phase 3 Started") Unit:SendChatMessage(14, 0, "Now I achieved full power!!") Unit:RegisterEvent("Tallulah_Brood_Affliction_Bronze", 60000, 1) Unit:RegisterEvent("Tallulah_Flame_Breath", 30000, 0) Unit:RegisterEvent("Tallulah_Necrotic_Plague", 45000, 0) Unit:RegisterEvent("Tallulah_Spirit_Burst", 20000, 0) Unit:RegisterEvent("Tallulah_Soul_Shriek", 40000, 0) Unit:RegisterEvent("Tallulah_Phase4", 1000, 0) end end function Tallulah_Phase4(Unit, Event) -- Phase 4 if (Unit:GetHealthPct() <= 05 ) then Unit:RemoveEvents() Unit:SetModel(31165) Unit:SetScale(1.0) Unit:SendChatMessage(42, 0, "Phase 4 Started") Unit:SendChatMessage(14, 0, "Now fulfill a destiny!!") Unit:RegisterEvent("Tallulah_Hodir's_Fury", 1000, 0) Unit:RegisterEvent("Tallulah_Hodir's_Fury", 1000, 0) Unit:RegisterEvent("Tallulah_Sindragosa's_Fury", 1000, 0) Unit:RegisterEvent("Tallulah_Fury_of_Frostmourne", 1000, 0) Unit:RegisterEvent("Tallulah_Shadow_Nova", 1000, 0) end end --[[ Spells Tallulah_Brood_Affliction_Bronze Tallulah_Flame_Breath Tallulah_Necrotic_Plague Tallulah_Spirit_Burst Tallulah_Soul_Shriek Tallulah_Hodir's_Fury Tallulah_Hodir's_Fury Tallulah_Sindragosa's_Fury Tallulah_Fury_of_Frostmourne Tallulah_Shadow_Nova ]] function Tallulah_Brood_Affliction_Bronze(Unit, Event) Unit:CastSpell(23170) end function Tallulah_Flame_Breath(Unit, Event) Unit:CastSpell(74527) end function Tallulah_Necrotic_Plague(Unit, Event) Unit:CastSpell(73787) end function Tallulah_Spirit_Burst(Unit, Event) Unit:CastSpellOnTarget(73808) end function Tallulah_Soul_Shriek(Unit, Event) Unit:CastSpellOnTarget(73802) end function Tallulah_Hodir's_Fury(Unit, Event) Unit:CastSpellOnTarget(62533) end function Tallulah_Hodir's_Fury(Unit, Event) Unit:CastSpellOnTarget(62297) end function Tallulah_Sindragosa's_Fury(Unit, Event) Unit:CastSpellOnTarget(70598) end function Tallulah_Fury_of_Frostmourne(Unit, Event) Unit:CastSpellOnTarget(72350) end function Tallulah_Shadow_Nova(Unit, Event) Unit:CastSpellOnTarget(45332) end function Tallulah_OnLeaveCombat(Unit, Event) Unit:RemoveEvents() Unit:SetScale(1) Unit:SetModel(31165) end function Tallulah_OnKilledTarget(Unit, Event) Unit:SendChatMessage(14, 0, "Fucking losers!! You wanted to beat me!! Hahahaha!!") end function Tallulah_OnDied(Unit, Event) Unit:RemoveEvents() Unit:SendChatMessage(14, 0, "Not ... Not my dark powers have left me ....") end RegisterUnitEvent(331994, 1, "Tallulah_OnCombat") RegisterUnitEvent(331994, 2, "Tallulah_OnLeaveCombat") RegisterUnitEvent(331994, 3, "Tallulah_OnKilledTarget") RegisterUnitEvent(331994, 4, "Tallulah_OnDied")
-
I see this patch there is a long time (by laise) for multipet support but need more improvement, seek in the forum. There is not a tutorial as the mangos installation, because every spell are different, we can't make a general turorial, you can just learn the base of coding in mangos and understand how its working.
-
I see how players play with multiboxing and generarly username of characters have similarity, so the best way for me, its the combo of Ip check and username similarity check.I want to know how i can make a check if players are multiboxing i need this to prevent a reward-system in my custom script.thx in advance
Im also thinking about position, you can make a position check for really remove multiboxing.
-
Yes its a right way if you dont conflict whith other feature and if you put each part of code in the good file .I wrote a little patch now the Question is this the right way to insert this to code ?commit 898f02a4744b29c770f1d89256b04c46b82257c8 Author: tim4 <123 @test.de> Date: Wed Jan 12 08:10:55 2011 +0100 Timed LVL up Patch Signed-off-by: tim4 <123 @test.de> diff --git a/src/game/Language.h b/src/game/Language.h index eeba52b..b957d55 100644 --- a/src/game/Language.h +++ b/src/game/Language.h @@ -909,8 +909,9 @@ enum MangosStrings // 10000-10999 // Use for custom patches 11000-11999 + LANG_LP_RUPT_MESSAGE = 11100,//WLK RP LUPT system v0.3M - message - // NOT RESERVED IDS 12000-1999999999 + // NOT RESERVED IDS 12000-1999999999 // `db_script_string` table index 2000000000-2000009999 (MIN_DB_SCRIPT_STRING_ID-MAX_DB_SCRIPT_STRING_ID) // For other tables maybe 2000010000-2147483647 (max index) }; diff --git a/src/game/ObjectAccessor.cpp b/src/game/ObjectAccessor.cpp index a37b6fc..2ffefb3 100644 --- a/src/game/ObjectAccessor.cpp +++ b/src/game/ObjectAccessor.cpp @@ -35,6 +35,7 @@ #include "Opcodes.h" #include "ObjectGuid.h" #include "World.h" +#include "Language.h" // WLK RP LUPT system v0.3 - MaNGOS #include <cmath> @@ -102,8 +103,7 @@ ObjectAccessor::FindPlayerByName(const char *name) return NULL; } -void -ObjectAccessor::SaveAllPlayers() +void ObjectAccessor::SaveAllPlayers() { HashMapHolder<Player>::ReadGuard g(HashMapHolder<Player>::GetLock()); HashMapHolder<Player>::MapType& m = sObjectAccessor.GetPlayers(); @@ -111,6 +111,72 @@ ObjectAccessor::SaveAllPlayers() itr->second->SaveToDB(); } +void ObjectAccessor::PlayerLevelByTime() // WLK RP LUPT system v0.3M +{ + uint8 confMaxLevel = sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL); + uint8 confAgeForLevel = sWorld.getConfig(CONFIG_UINT32_RP_LUPT_AGE_FOR_LEVEL); + bool confMsgEnabled = sWorld.getConfig(CONFIG_BOOL_RP_LUPT_MSG_ENABLED); + + HashMapHolder<Player>::ReadGuard g(HashMapHolder<Player>::GetLock()); + HashMapHolder<Player>::MapType& m = sObjectAccessor.GetPlayers(); + for (HashMapHolder<Player>::MapType::iterator iter = m.begin(); iter != m.end(); ++iter) + { + // If player is online & has played time + if (iter->second->IsInWorld() && iter->second->GetLevelPlayedTime() >= confAgeForLevel) + { + // If player isn't in AFK mode & isn't in combat & is alive & has lower level than max level + if(!iter->second->isAFK() && !iter->second->isInCombat() && iter->second->isAlive() && + iter->second->getLevel() < confMaxLevel) + { + uint8 level = iter->second->getLevel() + 1; + + iter->second->GiveLevel(level); // Give new level + iter->second->InitTalentForLevel(); // Init talents for new level + iter->second->SetUInt32Value(PLAYER_XP, 0); // Reset XP bar + iter->second->SaveToDB(true); // Save player to DB (now works properly) + + // RP LUPT system v0.3 - system messages + if(confMsgEnabled) + { + std::stringstream ss; + uint32 bytes = 0; + bytes |= uint8(level); // level + bytes |= uint8(iter->second->getRace()) << 8; // race + bytes |= uint8(iter->second->getClass()) << 16; // class + + if(!sWorld.GetLuptMessagesData(bytes)) + { + bytes = 0; // reset byte value + bytes |= uint8(level); // level + bytes |= uint8(-1) << 8; // all races + bytes |= uint8(-1) << 16; // all classes + if(!sWorld.GetLuptMessagesData(bytes)) + return; + } + + ss << iter->second->GetName() << ": " << sWorld.GetLuptMessagesData(bytes)->msgText; + + switch(sWorld.GetLuptMessagesData(bytes)->msgType) + { + case 1: + sWorld.SendWorldText(LANG_LP_RUPT_MESSAGE, ss.str().c_str()); + break; + case 2: + sWorld.SendServerMessage(SERVER_MSG_CUSTOM, ss.str().c_str(), NULL); + break; + case 3: + sWorld.SendWorldText(LANG_LP_RUPT_MESSAGE, ss.str().c_str()); + sWorld.SendServerMessage(SERVER_MSG_CUSTOM, ss.str().c_str(), NULL); + break; + default: + break; + } + } + } + } + } +} + void ObjectAccessor::KickPlayer(ObjectGuid guid) { if (Player* p = HashMapHolder<Player>::Find(guid)) diff --git a/src/game/ObjectAccessor.h b/src/game/ObjectAccessor.h index 5307b70..66802a9 100644 --- a/src/game/ObjectAccessor.h +++ b/src/game/ObjectAccessor.h @@ -119,7 +119,8 @@ class MANGOS_DLL_DECL ObjectAccessor : public MaNGOS::Singleton<ObjectAccessor, } void SaveAllPlayers(); - + void PlayerLevelByTime(); // WLK RP LUPT system v0.3M + // Pet access static Pet* FindPet(ObjectGuid guid); // if need pet at specific map better use Map::GetPet diff --git a/src/game/Player.cpp b/src/game/Player.cpp index a23d4b1..93f5e94 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -17451,13 +17451,21 @@ bool Player::_LoadHomeBind(QueryResult *result) /*** SAVE SYSTEM ***/ /*********************************************************/ -void Player::SaveToDB() -{ - // we should assure this: ASSERT((m_nextSave != sWorld.getConfig(CONFIG_UINT32_INTERVAL_SAVE))); - // delay auto save at any saves (manual, in code, or autosave) - m_nextSave = sWorld.getConfig(CONFIG_UINT32_INTERVAL_SAVE); - - //lets allow only players in world to be saved +void Player::SaveToDB(bool rp_lupt) +{ + // we should assure this: ASSERT((m_nextSave != sWorld.getConfig(CONFIG_UINT32_INTERVAL_SAVE))); + // delay auto save at any saves (manual, in code, or autosave) + + if(!rp_lupt) // WLK RP LUPT system - Autosave system FIX + { + m_nextSave = sWorld.getConfig(CONFIG_UINT32_INTERVAL_SAVE); + } + else // WLK log report if player saved by RP LUPT system + { + sLog.outString("RP LUPT: ACC:%u GUID:%u Name:%s has reached level %u and was stored to DB.", + GetSession()->GetAccountId(), GetGUIDLow(), m_name.c_str(), getLevel()); + } + //lets allow only players in world to be saved if(IsBeingTeleportedFar()) { ScheduleDelayedOperation(DELAYED_SAVE_PLAYER); diff --git a/src/game/Player.h b/src/game/Player.h index 78edcb2..c29013a 100644 --- a/src/game/Player.h +++ b/src/game/Player.h @@ -1558,8 +1558,8 @@ class MANGOS_DLL_SPEC Player : public Unit /*** SAVE SYSTEM ***/ /*********************************************************/ - void SaveToDB(); - void SaveInventoryAndGoldToDB(); // fast save function for item/money cheating preventing + void SaveToDB(bool rp_lupt = false); // WLK RP LUPT system v0.3M - Autosave system FIX + void SaveInventoryAndGoldToDB(); // fast save function for item/money cheating preventing void SaveGoldToDB(); void SaveDataFieldToDB(); static bool SaveValuesArrayInDB(Tokens const& data,uint64 guid); diff --git a/src/game/World.cpp b/src/game/World.cpp index f6fb0fb..5b82003 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -66,6 +66,7 @@ #include "AuctionHouseBot/AuctionHouseBot.h" #include "CharacterDatabaseCleaner.h" #include "Language.h" +#include "ProgressBar.h" // WLK RP LUPT system v0.3M INSTANTIATE_SINGLETON_1( World ); @@ -178,10 +179,21 @@ Player* World::FindPlayerInZone(uint32 zone) // Used by the weather system. We return the player to broadcast the change weather message to him and all players in the zone. return player; } + } return NULL; } +void World::SetRpLuptTableName(const std::string& rpluptTable) // WLK RP LUPT system v0.3M - Sets a name of the message table +{ + m_rpluptTable = rpluptTable; +} + +const char* World::GetRpLuptTableName() const // WLK RP LUPT system v0.3M - Returns a name of the message table +{ + return m_rpluptTable.c_str(); +} + /// Find a session by its id WorldSession* World::FindSession(uint32 id) const { @@ -917,6 +929,12 @@ void World::LoadConfigSettings(bool reload) sLog.outString( "WORLD: VMap support included. LineOfSight:%i, getHeight:%i, indoorCheck:%i", enableLOS, enableHeight, getConfig(CONFIG_BOOL_VMAP_INDOOR_CHECK) ? 1 : 0); sLog.outString( "WORLD: VMap data directory is: %svmaps",m_dataPath.c_str()); + // WLK RP LUPT config + setConfig(CONFIG_BOOL_RP_LUPT, "RP_LUPT.On", false); // v0.3M + setConfig(CONFIG_UINT32_RP_LUPT_CHECK_INTERVAL, "RP_LUPT.CheckInterval", 60); // v0.3M + setConfig(CONFIG_UINT32_RP_LUPT_AGE_FOR_LEVEL, "RP_LUPT.AgeForLevel", 3600); // v0.3M + setConfig(CONFIG_BOOL_RP_LUPT_MSG_ENABLED, "RP_LUPT.MessagesOn", false); // v0.3M + SetRpLuptTableName(sConfig.GetStringDefault("RP_LUPT.MessageDbTable", "")); // v0.3M // Darkrulerz' Customs setConfig(CONFIG_UINT32_BASE_PET_SCALE , "Custom.PetScale" , 1); @@ -1295,6 +1313,10 @@ void World::SetInitialWorldSettings() sLog.outString( "Returning old mails..." ); sObjectMgr.ReturnOrDeleteOldMails(false); + ///- WLK RP LUPT system v0.3M - Load system messages + sLog.outString("Loading RP LUPT System Messages..."); + LoadLuptMessages(); + ///- Load and initialize scripts sLog.outString( "Loading Scripts..." ); sLog.outString(); @@ -1363,6 +1385,7 @@ void World::SetInitialWorldSettings() m_timers[WUPDATE_EXT_MAIL].SetInterval(m_configUint32Values[CONFIG_UINT32_EXTERNAL_MAIL_INTERVAL] * MINUTE * IN_MILLISECONDS); // External mail m_timers[WUPDATE_DELETECHARS].SetInterval(DAY*IN_MILLISECONDS); // check for chars to delete every day m_timers[WUPDATE_AUTOBROADCAST].SetInterval(abtimer); + m_timers[WUPDATE_RP_LUPT].SetInterval(getConfig(CONFIG_UINT32_RP_LUPT_CHECK_INTERVAL)*IN_MILLISECONDS); // WLK RP LUPT v0.3M // for AhBot m_timers[WUPDATE_AHBOT].SetInterval(20*IN_MILLISECONDS); // every 20 sec @@ -1481,6 +1504,40 @@ void World::DetectDBCLang() sLog.outString(); } +void World::LoadLuptMessages() // WLK RP LUPT system v0.3M - Loads system messages +{ + uint32 count = 0; + // 0 1 2 3 4 + QueryResult *result = WorldDatabase.PQuery("SELECT level, type, race, class, message FROM %s", sWorld.GetRpLuptTableName()); + + if(result) + { + barGoLink bar(result->GetRowCount()); + do + { + bar.step(); + Field *fields = result->Fetch(); + uint32 bytes = 0; + bytes |= fields[0].GetUInt8(); // level + bytes |= fields[2].GetUInt8() << 8; // race + bytes |= fields[3].GetUInt8() << 16; // class + LuptMessagesData lmd; + lmd.msgType = fields[1].GetUInt8(); // Message type + lmd.msgText = fields[4].GetCppString(); // Message text + mLuptMessagesData[bytes] = lmd; + count++; + } while (result->NextRow()); + } + else + { + barGoLink bar(1); + bar.step(); + } + sLog.outString(">> Loaded %u RP LUPT system messages", count); + sLog.outString(); + return; +} + /// Update the World ! void World::Update(uint32 diff) { @@ -1622,6 +1679,15 @@ void World::Update(uint32 diff) SendBroadcast(); } } + ///- WLK RP LUPT v0.3M - fce call + if (sWorld.getConfig(CONFIG_BOOL_RP_LUPT)) + { + if (m_timers[WUPDATE_RP_LUPT].Passed()) + { + m_timers[WUPDATE_RP_LUPT].Reset(); + sObjectAccessor.PlayerLevelByTime(); + } + } ///- Process External Mail Queue when necessary if(m_configBoolValues[CONFIG_BOOL_EXTERNAL_MAIL_ENABLED] && m_timers[WUPDATE_EXT_MAIL].Passed()) diff --git a/src/game/World.h b/src/game/World.h index 2d42f8f..61ab772 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -51,7 +51,8 @@ enum ServerMessageType SERVER_MSG_RESTART_TIME = 2, SERVER_MSG_STRING = 3, SERVER_MSG_SHUTDOWN_CANCELLED = 4, - SERVER_MSG_RESTART_CANCELLED = 5 + SERVER_MSG_RESTART_CANCELLED = 5, + SERVER_MSG_CUSTOM = 6 }; enum ShutdownMask @@ -81,7 +82,9 @@ enum WorldTimers WUPDATE_AUTOBROADCAST = 8, WUPDATE_EXT_MAIL = 9, WUPDATE_AHBOT = 10, - WUPDATE_COUNT = 11 + WUPDATE_RP_LUPT = 11, // WLK RP LUPT v0.3M + WUPDATE_COUNT = 12 + }; /// Configuration elements @@ -194,7 +197,10 @@ enum eConfigUInt32Values CONFIG_UINT32_BASE_PET_SCALE, // External Mail CONFIG_UINT32_EXTERNAL_MAIL_INTERVAL, - CONFIG_UINT32_VALUE_COUNT + CONFIG_UINT32_RP_LUPT_CHECK_INTERVAL, // WLK RP LUPT v0.3M + CONFIG_UINT32_RP_LUPT_AGE_FOR_LEVEL, // WLK RP LUPT v0.3M + CONFIG_UINT32_RP_LUPT_MSG_TYPE, // WLK RP LUPT v0.3M + CONFIG_UINT32_VALUE_COUNT }; /// Configuration elements @@ -353,7 +359,9 @@ enum eConfigBoolValues CONFIG_BOOL_ENABLE_DODGE_CAP, /// Darkrulerz' Customs - CONFIG_BOOL_VALUE_COUNT + CONFIG_BOOL_RP_LUPT, // WLK RP LUPT v0.3M + CONFIG_BOOL_RP_LUPT_MSG_ENABLED, // WLK RP LUPT v0.3M + CONFIG_BOOL_VALUE_COUNT }; /// Can be used in SMSG_AUTH_RESPONSE packet @@ -501,6 +509,31 @@ class World /// Get the current Message of the Day const char* GetMotd() const { return m_motd.c_str(); } + /// WLK RP LUPT system v0.3M - Sets a name of the message table + void World::SetRpLuptTableName(const std::string& rpluptTable); + /// WLK RP LUPT system v0.3M - Returns a name of the message table + const char* World::GetRpLuptTableName() const; + + // WLK RP LUPT system v0.3M - Loads system messages + void LoadLuptMessages(); + struct LuptMessagesData + { + uint8 msgType; + std::string msgText; + }; + typedef UNORDERED_MAP<uint32, LuptMessagesData> LuptMessagesDataMap; + private: + std::string m_rpluptTable; + LuptMessagesDataMap mLuptMessagesData; + public: + LuptMessagesData const* GetLuptMessagesData( uint32 bytes ) const + { + LuptMessagesDataMap::const_iterator itr = mLuptMessagesData.find( bytes ); + if( itr != mLuptMessagesData.end() ) + return &itr->second; + return NULL; + } // WLK end + LocaleConstant GetDefaultDbcLocale() const { return m_defaultDbcLocale; } /// Get the path where data (dbc, maps) are stored on disk
-
Whith cmake there is now Prefix option for Ace and TBB see mangos wiki for this .
-
There are a lot of repository as you would but many are for own usage and they not show to public, so I think the best way is to make your own repository ^^ whith the best patch of popular kero99,insider and other.
-
So, Modmanager has its own function and mod use this function for work ? And Modmanager udapted his code when mangos updated but the function of Modmanager is always called whith the same way so mod working at all the time.Great idea,you can make a library so as ScriptDev2 For more mobilty.
So your project is a centralization of work on xMods update instead of update each feature.But I think its very complex, because each feature is pretty different so its great for small feature whith small code .
-
Tried in hellfire peninsula and work great but I have problem with handling zones/areas and without idea of code structure etc...
I do not known if i am in the right way but i need learn more about sd2 and existing scripts
I saw your replies about working outdoor pvp and i'am happy to be less lost I'm excited to see how this works
Yes you are in the right way whith SD2 structure just some useless function like player enter zone, you need begin to write reset{} function which it initialize and load creature gameobject etc..
reset(){ m_uiHordeCounter = 0; m_uiAllyCounter = 0; }
uint64 GetData64(uint32 uiData){
switch(uiData)
{
case DATA_HORDE_COUNTER: return m_uiHordeCounter;
case DATA_ALLY_COUNTER: return m_uiAllyCounter;
}
return 0;
}
void Load(const char* in)
{
if (!in)
{
OUT_LOAD_INST_DATA_FAIL;
return;
}
OUT_LOAD_INST_DATA(in);
std::istringstream loadStream(in);
loadStream >> m_uiHordeCounter >> m_uiAllyCounter;
OUT_LOAD_INST_DATA_COMPLETE;
}
This function are useless because the maps its non instabnceable
All OutdoorPvp script will be load when player enter in the specific map and not in the specific area.But I m thinking about a sort of gate which whith it , we will can make each script by zone.
So an Outdoor Pvp basic script which is called when the player enter map and Outdoor Pvp basic script check whith Update(){} what is the player zone and call specific OutdoorPvp script if player is in the Outdoor Pvp zone.
-
Thanks for your help!
I have a new question^^
I am ready to download my database as indicated in your installation guide.
Download newest UDB database and the latest UDB update packs
Update your World of Warcraft client to the supported version
EXTRACTING FILES FROM YOUR CLIENT
Copy C:\\Mangos\\contrib\\extractor\\ad.exe in your C:\\World of Warcraft
Run Ad.exe from your C:\\World of Warcraft
In which file should I download my database please?
In the folder that you want because the database file its for the sql database, you need a database system like mysql for import the sql file downloaded.
-
The Light of Dawn
I had rewrited this quest script there is a long time and its working perfectly ^^
-
So now Im etablishing structure design for SD2 and mangos,I think mangos keep code of OutdoorPvp mgr and for the moment OutDoorPvp.cpp, so SD2 group the four script zone in 1 script, I can imagine the reset function which add gameobject and creature guard of the 4 script.
-
oki, I try to update code to the latest revision but its not possible whithout add more hack, some function in objet accessor were removed and use map function now, so I begin start convert OutdoorPvp to ScriptDev2, I thinks its the best choice for the last mangos revision, its now support this so why wait more time ?
-
In reference to this MaNGOS One commit https://github.com/mangos/one/commit/8cd46197e1efbb34fc1a5be27a7cdace3f57de98, discussed in the thread about Outdoor PvP for MaNGOS One...
Will this patch also be implemented in MaNGOS or has similar functionality already been established? I glanced through the history for MaNGOS master and did not notice any similar code recently committed.
Assuming it has or will be implemented for 3.3.5, am I correct in reading this as meaning Outdoor PvP can now be supported by the core and only requires SD2 scripting?
If the Outdoor pvp can be scripted by SD2 then somebody should make a basic example for it, because I really don't understand how could be implement four distinct outdoor pvp scripts on the same instanced world map (Hellfire, Zanga, Terokar, Nargrand).
There must be a way to separate the zones, and to implement a script for each zone.
You say right, zone its not implemented just map but its always possible to implement outdoorpvp in SD2, principe of each zone is the same capture point .
-
Yes, its stored in the DDR server , when the player enter in the game, the speed rate its initialized and its will changed over time.
Would I sound stupid to ask what DDR server is? I really need a lot of studying......
See here for more explication and if you have some other question, we are here .
-
Its doesn't exist because it's needed few variable (I dont say impossible), so very complicate sql query lol.You have a problem whith Dk talents point ?
-
moreover if you would run mangosd whith Visual studio (very usefull for debug), you need to put config files and map in VCXX folder but this is a tips .
-
Could you give me an idea of the difference between those database so I can choose one?
YDTB is more updated, UDB take a long time to update but may be more stable.
animation question
in OldGeneral discussion
Posted
Also add more speed rate in your character caracteristic.