Jump to content

klark20

Members
  • Posts

    5
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by klark20

  1. * What bug does the patch fix? What features does the patch add? Fix the right spells for "Orb of Translocation" in Terrokar Forrest * For which repository revision was the patch created? 11927 * Who has been writing this patch? Please include either forum user names or email addresses. me * Patch http://paste2.org/p/1901344
  2. * What bug does the patch fix? What features does the patch add? NPC Argent Squire and Argent Gruntling requires gossip_script for Vendor and Bank to cast a spell, if you click the gossip. * For which repository revision was the patch created? master * Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. no * Who has been writing this patch? Please include either forum user names or email addresses. me http://paste2.org/p/1547797
  3. What say the Server.log, if you attack a creature?
  4. vmap activated? mangosd.conf vmap.enableLOS = 1 vmap.enableHeight = 1
  5. * What bug does the patch fix? What features does the patch add? Support taxi path in gossip_scripts * For which repository revision was the patch created? 11387 * Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. No * Who has been writing this patch? Please include either forum user names or email addresses. Schmoozerd From c7940b0ba28748a2a5f4927387f9fe9e359481a2 Mon Sep 17 00:00:00 2001 From: Schmoozerd <[email protected]> Date: Wed, 20 Apr 2011 19:52:21 +0200 Subject: [PATCH] Add SCRIPT_COMMAND_SEND_TAXI_PATH --- doc/script_commands.txt | 8 +++----- src/game/Map.cpp | 13 +++++++++++++ src/game/ScriptMgr.cpp | 14 ++++++++++++++ src/game/ScriptMgr.h | 7 +++++++ 4 files changed, 37 insertions(+), 5 deletions(-) diff --git a/doc/script_commands.txt b/doc/script_commands.txt index 0630f73..2e9dfb6 100644 --- a/doc/script_commands.txt +++ b/doc/script_commands.txt @@ -219,8 +219,6 @@ spell_scripts * data_flags = flag_original_source_as_target = 0x02 flag_buddy_as_target = 0x04 (When this flag is not set, buddy will be the attacker when buddy is defined) - - - - - +27 SCRIPT_COMMAND_SEND_TAXI_PATH source or target must be Player, source preferred + * datalong = taxi path id + * datalong2 = spell id diff --git a/src/game/Map.cpp b/src/game/Map.cpp index 4984293..bcf03ce 100644 --- a/src/game/Map.cpp +++ b/src/game/Map.cpp @@ -2869,6 +2869,19 @@ void Map::ScriptsProcess() sLog.outError("SCRIPT_COMMAND_ATTACK_START (script id %u) unexpected error, attacker or victim could not be found, no action.", step.script->id); break; } + case SCRIPT_COMMAND_SEND_TAXI_PATH: + { + if ((!source || !source->isType(TYPEMASK_PLAYER)) && (!target || !target->isType(TYPEMASK_PLAYER))) + { + sLog.outError("SCRIPT_COMMAND_SEND_TAXI_PATH (script id %u) call for not fitting source (type %u) or target (type %u)", step.script->id, source ? source->GetTypeId() : 0, target ? target->GetTypeId() : 0); + break; + } + + Player* player = source && source->isType(TYPEMASK_PLAYER) ? (Player*)source : (Player*)target; + + player->ActivateTaxiPathTo(step.script->sendTaxiPath.taxiPathId, step.script->sendTaxiPath.spellId); + break; + } default: sLog.outError("Unknown SCRIPT_COMMAND_ %u called for script id %u.",step.script->command, step.script->id); break; diff --git a/src/game/ScriptMgr.cpp b/src/game/ScriptMgr.cpp index ef0ec43..a58d11c 100644 --- a/src/game/ScriptMgr.cpp +++ b/src/game/ScriptMgr.cpp @@ -533,6 +533,20 @@ void ScriptMgr::LoadScripts(ScriptMapMap& scripts, const char* tablename) } break; } + case SCRIPT_COMMAND_SEND_TAXI_PATH: + { + if (!sTaxiPathStore.LookupEntry(tmp.sendTaxiPath.taxiPathId)) + { + sLog.outErrorDb("Table `%s` has datalong = %u in SCRIPT_COMMAND_SEND_TAXI_PATH for script id %u, but this taxi path does not exist.", tablename, tmp.sendTaxiPath.taxiPathId, tmp.id); + continue; + } + if (tmp.sendTaxiPath.spellId && !sSpellStore.LookupEntry(tmp.sendTaxiPath.spellId)) + { + sLog.outErrorDb("Table `%s` has datalong2 = %u in SCRIPT_COMMAND_SEND_TAXI_PATH for script id %u, but this spell does not exist.", tablename, tmp.sendTaxiPath.spellId, tmp.id); + continue; + } + break; + } } if (scripts.find(tmp.id) == scripts.end()) diff --git a/src/game/ScriptMgr.h b/src/game/ScriptMgr.h index a67d935..0598b24 100644 --- a/src/game/ScriptMgr.h +++ b/src/game/ScriptMgr.h @@ -92,6 +92,7 @@ enum eScriptCommand // datalong2=creature entry, datalong3=search radius SCRIPT_COMMAND_ATTACK_START = 26, // source = Creature (or WorldObject when creature entry are defined), target = Player // datalong2 = creature entry (searching for a buddy, closest to source), datalong3 = creature search radius + SCRIPT_COMMAND_SEND_TAXI_PATH = 27, // datalong = taxi path id, datalong2 = spell id (source or target must be player) }; #define MAX_TEXT_ID 4 // used for SCRIPT_COMMAND_TALK @@ -286,6 +287,12 @@ struct ScriptInfo struct { + uint32 taxiPathId; // datalong + uint32 spellId; // datalong2 + } sendTaxiPath; + + struct + { uint32 data[9]; } raw; }; -- 1.7.3.1.msysgit.0 Test for NPC Afrasastrasz INSERT IGNORE INTO gossip_scripts (id, delay, command, datalong, datalong2, datalong3, datalong4, data_flags, dataint, dataint2, x, y, z, o, comments) VALUES (95630, 0, 27, 881, 5, 0, 0, 0, 0, 0, 0,0,0,0, 'Taxi path 881'), (95631, 0, 27, 882, 5, 0, 0, 0, 0, 0, 0,0,0,0, 'Taxi path 882'); UPDATE gossip_menu_option SET action_menu_id=-1, action_script_id=95630 WHERE menu_id=9563 AND id=0; UPDATE gossip_menu_option SET action_menu_id=-1, action_script_id=95631 WHERE menu_id=9563 AND id=1; UPDATE creature_template SET ScriptName='' WHERE entry=27575;
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use