diff options
-rw-r--r-- | sql/updates/world/2012_02_01_00_world_sai.sql | 41 | ||||
-rwxr-xr-x | src/server/game/Chat/Commands/Level2.cpp | 6 | ||||
-rwxr-xr-x | src/server/game/World/World.cpp | 2 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_wp.cpp | 2 | ||||
-rwxr-xr-x | src/server/shared/Database/Implementation/WorldDatabase.cpp | 2 | ||||
-rwxr-xr-x | src/server/shared/Database/Implementation/WorldDatabase.h | 2 | ||||
-rwxr-xr-x | src/server/shared/Utilities/Util.cpp | 25 | ||||
-rwxr-xr-x | src/server/shared/Utilities/Util.h | 3 |
8 files changed, 69 insertions, 14 deletions
diff --git a/sql/updates/world/2012_02_01_00_world_sai.sql b/sql/updates/world/2012_02_01_00_world_sai.sql new file mode 100644 index 00000000000..3b9abd4c746 --- /dev/null +++ b/sql/updates/world/2012_02_01_00_world_sai.sql @@ -0,0 +1,41 @@ +-- [Q] Plan B (11658) +SET @ENTRY_GUARD := 25342; -- Dead Caravan Guard +SET @ENTRY_WORKER := 25343; -- Dead Caravan Worker +SET @ITEM := 34842; -- Warsong Outfit +SET @GOSSIP_1 := 9155; +SET @GOSSIP_2 := 9156; +SET @QUEST := 11658; -- Plan B + +DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP_1; +DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP_2; +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES +(@GOSSIP_1, 12388), +(@GOSSIP_2, 12389); + +DELETE FROM `gossip_menu_option` WHERE `menu_id`=@GOSSIP_1; +DELETE FROM `gossip_menu_option` WHERE `menu_id`=@GOSSIP_2; +INSERT INTO `gossip_menu_option` VALUES +(@GOSSIP_1, 0, 0, 'Retrieve Warsong Outfit.', 1, 1, 0, 0, 0, 0, ''), +(@GOSSIP_2, 0, 0, 'Retrieve Warsong Outfit.', 1, 1, 0, 0, 0, 0, ''); + +UPDATE `creature_template` SET `npcflag`=`npcflag`|1 WHERE `entry` IN (@ENTRY_GUARD, @ENTRY_WORKER); +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=25342 AND `id`=2534201; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=25343 AND `id`=2534301; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (@ENTRY_GUARD, @ENTRY_WORKER); +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY_GUARD AND `source_type`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY_WORKER AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) +VALUES +(@ENTRY_GUARD, 0, 0, 1, 62, 0, 100, 0, @GOSSIP_1, 0, 0, 0, 56, @ITEM, 1, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Dead Caravan Guard - On Gossip Select - Add Item Warsong Outfit'), +(@ENTRY_GUARD, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Dead Caravan Guard - On Gossip Select - Forced Despawn'), +(@ENTRY_WORKER, 0, 0, 1, 62, 0, 100, 0, @GOSSIP_2, 0, 0, 0, 56, @ITEM, 1, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Dead Caravan Worker - On Gossip Select - Add Item Warsong Outfit'), +(@ENTRY_WORKER, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Dead Caravan Worker - On Gossip Select - Forced Despawn'); + +-- Conditions +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=@GOSSIP_1; +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=@GOSSIP_2; +INSERT INTO `conditions` VALUES +(15, @GOSSIP_1, 0, 0, 9, @QUEST, 0, 0, 0, '', 'Only show gossip if player has quest Plan B'), +(15, @GOSSIP_2, 0, 0, 9, @QUEST, 0, 0, 0, '', 'Only show gossip if player has quest Plan B'), +(15, @GOSSIP_1, 0, 0, 2, @ITEM, 10, 0, 0, '', 'Only show gossip if player has less then 10 outfits'), +(15, @GOSSIP_2, 0, 0, 2, @ITEM, 10, 0, 0, '', 'Only show gossip if player has less then 10 outfits'); diff --git a/src/server/game/Chat/Commands/Level2.cpp b/src/server/game/Chat/Commands/Level2.cpp index 144a1f83eff..2f04ebcf6bc 100755 --- a/src/server/game/Chat/Commands/Level2.cpp +++ b/src/server/game/Chat/Commands/Level2.cpp @@ -568,7 +568,7 @@ bool ChatHandler::HandleCharacterChangeRaceCommand(const char * args) PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ADD_AT_LOGIN_FLAG); - stmt->setUInt16(0, uint16(AT_LOGIN_CHANGE_FACTION)); + stmt->setUInt16(0, uint16(AT_LOGIN_CHANGE_RACE)); if (target) { @@ -710,13 +710,13 @@ bool ChatHandler::HandleLookupPlayerIpCommand(const char* args) std::string ip; int32 limit; char* limit_str; - + Player *chr = getSelectedPlayer(); if (chr == NULL) { if (!*args) return false; - + ip = strtok ((char*)args, " "); limit_str = strtok (NULL, " "); limit = limit_str ? atoi (limit_str) : -1; diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index d2a4323bb30..b9ac3d1d365 100755 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1936,7 +1936,7 @@ void World::Update(uint32 diff) stmt->setUInt64(0, uint64(tmpDiff)); stmt->setUInt16(1, uint16(maxOnlinePlayers)); stmt->setUInt32(2, realmID); - stmt->setUInt16(3, uint64(m_startTime)); + stmt->setUInt64(3, uint64(m_startTime)); LoginDatabase.Execute(stmt); } diff --git a/src/server/scripts/Commands/cs_wp.cpp b/src/server/scripts/Commands/cs_wp.cpp index 6482589f149..8f5e862555c 100644 --- a/src/server/scripts/Commands/cs_wp.cpp +++ b/src/server/scripts/Commands/cs_wp.cpp @@ -1041,7 +1041,7 @@ public: } while (result->NextRow()); // set "wpguid" column to "empty" - no visual waypoint spawned - PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WOLRD_UPD_ALL_WAYPOINT_DATA_WPGUID); + PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_ALL_WAYPOINT_DATA_WPGUID); WorldDatabase.Execute(stmt); //WorldDatabase.PExecute("UPDATE creature_movement SET wpguid = '0' WHERE wpguid <> '0'"); diff --git a/src/server/shared/Database/Implementation/WorldDatabase.cpp b/src/server/shared/Database/Implementation/WorldDatabase.cpp index 7fd438daf48..d7d8491008b 100755 --- a/src/server/shared/Database/Implementation/WorldDatabase.cpp +++ b/src/server/shared/Database/Implementation/WorldDatabase.cpp @@ -48,7 +48,7 @@ void WorldDatabaseConnection::DoPrepareStatements() PREPARE_STATEMENT(WORLD_UPD_WAYPOINT_DATA_POINT, "UPDATE waypoint_data SET point = point - 1 WHERE id = ? AND point > ?", CONNECTION_ASYNC); PREPARE_STATEMENT(WORLD_UPD_WAYPOINT_DATA_POSITION, "UPDATE waypoint_data SET position_x = ?, position_y = ?, position_z = ? where id = ? AND point = ?", CONNECTION_ASYNC); PREPARE_STATEMENT(WORLD_UPD_WAYPOINT_DATA_WPGUID, "UPDATE waypoint_data SET wpguid = ? WHERE id = ? and point = ?", CONNECTION_ASYNC); - PREPARE_STATEMENT(WOLRD_UPD_ALL_WAYPOINT_DATA_WPGUID, "UPDATE waypoint_data SET wpguid = 0", CONNECTION_ASYNC); + PREPARE_STATEMENT(WORLD_UPD_ALL_WAYPOINT_DATA_WPGUID, "UPDATE waypoint_data SET wpguid = 0", CONNECTION_ASYNC); PREPARE_STATEMENT(WORLD_INS_CREATURE_ADDON, "INSERT INTO creature_addon(guid, path_id) VALUES (?, ?)", CONNECTION_ASYNC); PREPARE_STATEMENT(WORLD_UPD_CREATURE_ADDON_PATH, "UPDATE creature_addon SET path_id = ? WHERE guid = ?", CONNECTION_ASYNC); PREPARE_STATEMENT(WORLD_DEL_CREATURE_ADDON, "DELETE FROM creature_addon WHERE guid = ?", CONNECTION_ASYNC); diff --git a/src/server/shared/Database/Implementation/WorldDatabase.h b/src/server/shared/Database/Implementation/WorldDatabase.h index 92aa75fae61..e708177503f 100755 --- a/src/server/shared/Database/Implementation/WorldDatabase.h +++ b/src/server/shared/Database/Implementation/WorldDatabase.h @@ -68,7 +68,7 @@ enum WorldDatabaseStatements WORLD_UPD_WAYPOINT_DATA_POINT, WORLD_UPD_WAYPOINT_DATA_POSITION, WORLD_UPD_WAYPOINT_DATA_WPGUID, - WOLRD_UPD_ALL_WAYPOINT_DATA_WPGUID, + WORLD_UPD_ALL_WAYPOINT_DATA_WPGUID, WORLD_UPD_CREATURE_ADDON_PATH, WORLD_INS_CREATURE_ADDON, WORLD_DEL_CREATURE_ADDON, diff --git a/src/server/shared/Utilities/Util.cpp b/src/server/shared/Utilities/Util.cpp index ba385230822..6ae43bc6840 100755 --- a/src/server/shared/Utilities/Util.cpp +++ b/src/server/shared/Utilities/Util.cpp @@ -30,17 +30,22 @@ typedef ACE_TSS<SFMTRand> SFMTRandTSS; static SFMTRandTSS sfmtRand; -int32 irand (int32 min, int32 max) +int32 irand(int32 min, int32 max) { return int32(sfmtRand->IRandom(min, max)); } -uint32 urand (uint32 min, uint32 max) +uint32 urand(uint32 min, uint32 max) { return sfmtRand->URandom(min, max); } -int32 rand32 () +float frand(float min, float max) +{ + return float(sfmtRand->Random() * (max - min) + min); +} + +int32 rand32() { return int32(sfmtRand->BRandom()); } @@ -50,27 +55,33 @@ double rand_norm(void) return sfmtRand->Random(); } -double rand_chance (void) +double rand_chance(void) { return sfmtRand->Random() * 100.0; } + #else typedef ACE_TSS<MTRand> MTRandTSS; static MTRandTSS mtRand; int32 irand(int32 min, int32 max) { - return int32(mtRand->randInt (max - min)) + min; + return int32(mtRand->randInt(max - min)) + min; } uint32 urand(uint32 min, uint32 max) { - return mtRand->randInt (max - min) + min; + return mtRand->randInt(max - min) + min; +} + +float frand(float min, float max) +{ + return float(mtRand->randExc(max - min) + min); } int32 rand32() { - return mtRand->randInt (); + return mtRand->randInt(); } double rand_norm(void) diff --git a/src/server/shared/Utilities/Util.h b/src/server/shared/Utilities/Util.h index b67761c4977..684b26eea63 100755 --- a/src/server/shared/Utilities/Util.h +++ b/src/server/shared/Utilities/Util.h @@ -64,6 +64,9 @@ inline uint32 secsToTimeBitFields(time_t secs) /* Return a random number in the range 0 .. RAND32_MAX. */ int32 rand32(); + /* Return a random number in the range min..max */ + float frand(float min, float max); + /* Return a random double from 0.0 to 1.0 (exclusive). Floats support only 7 valid decimal digits. * A double supports up to 15 valid decimal digits and is used internally (RAND32_MAX has 10 digits). * With an FPU, there is usually no difference in performance between float and double. */ |