Mount Script menu

Shout-Out

User Tag List

Thread: Mount Script

Results 1 to 8 of 8
  1. #1
    Padlockcode's Avatar Active Member
    Reputation
    44
    Join Date
    Dec 2006
    Posts
    116
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Mount Script

    Looking For a working mount script

    Preferably working in C++

    Like when the char clicks a menu item it mods their speed and mountid

    must be working with arcemu

    and it cant be the [2nd place] mounter script, because that doesnt work

    +rep to whoever has one =)

    Thanks

    Mount Script
  2. #2
    Sounddead's Avatar Contributor
    Reputation
    160
    Join Date
    Sep 2007
    Posts
    1,126
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Code:
    //This Script is written by WHOS and TRONYC
    //Credits go to Original Authors of the following:
    //MounterNPC.CPP - ODIN//Scarface
    //Mounter.CPP - ACDB SVN
    #include "StdAfx.h"
    #include "Setup.h"
    #ifdef WIN32
    #pragma warning(disable:4305)        // warning C4305: 'argument' : truncation from 'double' to 'float'
    #endif
    #define Mounter_Item_ID 62019
    #define Mounter_Text_ID 2593
    class SCRIPT_DECL MounterItem : public GossipScript{
     public:
    void GossipHello(Object * pObject, Player* Plr, bool AutoSend);
    void GossipSelectOption(Object * pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code);
    void GossipEnd(Object * pObject, Player* Plr){ GossipScript::GossipEnd(pObject, Plr); }
    void Destroy(){ delete this; }
    };
    
    void MounterItem::GossipHello(Object* pObject, Player * Plr, bool AutoSend){
     bool flytf = false;
    uint32 eventid = 5;
    
    1. WorldPacket fly(SMSG_MOVE_SET_UNFLY, 13);
    2. Plr->m_setflycheat = flytf;
    3. fly << Plr->GetNewGUID();
    4. fly << uint32(eventid);
    5. Plr->SendMessageToSet(&fly, true);
    6. Plr->SetPlayerSpeed(RUN, 8);
    7. Plr->SetPlayerSpeed(SWIM, 6);
    8. Plr->SetPlayerSpeed(RUNBACK, 4);
    9. Plr->SetPlayerSpeed(FLY, 12);
    10. Plr->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 0);
    11. Plr->Gossip_Complete();
    12. if(Plr->CombatStatus.IsInCombat()){
    13. Plr->BroadcastMessage("You are in combat!");
    14. }else{
    15. GossipMenu *Menu;
    16. objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), Mounter_Text_ID, Plr);
    17. Menu->AddItem(0, "Mount Nether Drake", 1);
    18. Menu->AddItem(0, "Mount Armored Nether Drake", 2);
    19. Menu->AddItem(2, "Nevermind", 3);
    20. if(AutoSend) Menu->SendTo(Plr);
    21. }
    22. };
    23. void MounterItem::GossipSelectOption(Object* pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code){
    24. switch(IntId){
    25. case 1:{
    26. if(Plr->getLevel() >= 50){
    27. bool flytf = true;
    28. uint32 eventid = 2;
    29. uint32 displayid = 17772;
    30. WorldPacket fly(SMSG_MOVE_SET_FLY, 13);
    31. Plr->m_setflycheat = true;
    32. fly << Plr->GetNewGUID();
    33. fly << uint32(eventid);
    34. Plr->SendMessageToSet(&fly, true);
    35. Plr->SetPlayerSpeed(RUN, 10);
    36. Plr->SetPlayerSpeed(SWIM, 10);
    37. Plr->SetPlayerSpeed(RUNBACK, 10);
    38. Plr->SetPlayerSpeed(FLY, 20);
    39. Plr->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, displayid);
    40. Plr->Gossip_Complete();
    41. }else {
    42. Plr->BroadcastMessage("You Must be level 50 to use this mount!");
    43. }break;
    44. }
    45. case 2:{
    46. if(Plr->getLevel() >= 100){
    47. bool flytf = true;
    48. uint32 eventid = 2;
    49. uint32 displayid = 20809;
    50. WorldPacket fly(SMSG_MOVE_SET_FLY, 13);
    51. Plr->m_setflycheat = true;
    52. fly << Plr->GetNewGUID();
    53. fly << uint32(eventid);
    54. Plr->SendMessageToSet(&fly, true);
    55. Plr->SetPlayerSpeed(RUN, 15);
    56. Plr->SetPlayerSpeed(SWIM, 10);
    57. Plr->SetPlayerSpeed(RUNBACK, 10);
    58. Plr->SetPlayerSpeed(FLY, 30);
    59. Plr->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, displayid);
    60. Plr->Gossip_Complete();
    61. }else {
    62. Plr->BroadcastMessage("You Must be level 100 to use this mount!");
    63. }break;
    64. }
    65. case 3:{
    66. Plr->Gossip_Complete();
    67. }
    68. }
    69. }
    70. void SetupMounterItem(ScriptMgr *mgr){
    71. GossipScript * gs = (GossipScript*) new MounterItem();
    72. mgr->register_item_gossip_script(Mounter_Item_ID, gs);
    73. }
    That is for a flying mount, so you will have to edit it accordingly. But it should work fine Good luck.

    Sorry about the numbers.. I tried to get rid of them, but I don't wanna do it to 73 more lines :P
    Last edited by Sounddead; 02-18-2009 at 02:54 PM.

    I live in a shoe

  3. #3
    Nymphx's Avatar Active Member
    Reputation
    83
    Join Date
    Sep 2008
    Posts
    212
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Wait, Sounddead are you whosyerdady? If you are then... **** ME!

    Thats the script from WoWBlaze (I'm guessing), you sure its ok to post it about?

  4. #4
    Padlockcode's Avatar Active Member
    Reputation
    44
    Join Date
    Dec 2006
    Posts
    116
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Truely Thanks! i stuck it in notepad ++ and it autogot rid of the 1-73

    if anybody wants it
    //This Script is written by WHOS and TRONYC
    //Credits go to Original Authors of the following:
    //MounterNPC.CPP - ODIN//Scarface
    //Mounter.CPP - ACDB SVN
    #include "StdAfx.h"
    #include "Setup.h"
    #ifdef WIN32
    #pragma warning(disable:4305) // warning C4305: 'argument' : truncation from 'double' to 'float'
    #endif
    #define Mounter_Item_ID 62019
    #define Mounter_Text_ID 2593
    class SCRIPT_DECL MounterItem : public GossipScript{
    public:
    void GossipHello(Object * pObject, Player* Plr, bool AutoSend);
    void GossipSelectOption(Object * pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code);
    void GossipEnd(Object * pObject, Player* Plr){ GossipScript::GossipEnd(pObject, Plr); }
    void Destroy(){ delete this; }
    };

    void MounterItem::GossipHello(Object* pObject, Player * Plr, bool AutoSend){
    bool flytf = false;
    uint32 eventid = 5;
    WorldPacket fly(SMSG_MOVE_SET_UNFLY, 13);

    Plr->m_setflycheat = flytf;

    fly << Plr->GetNewGUID();

    fly << uint32(eventid);

    Plr->SendMessageToSet(&fly, true);

    Plr->SetPlayerSpeed(RUN, ;

    Plr->SetPlayerSpeed(SWIM, 6);

    Plr->SetPlayerSpeed(RUNBACK, 4);

    Plr->SetPlayerSpeed(FLY, 12);

    Plr->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 0);

    Plr->Gossip_Complete();

    if(Plr->CombatStatus.IsInCombat()){

    Plr->BroadcastMessage("You are in combat!");

    }else{

    GossipMenu *Menu;

    objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), Mounter_Text_ID, Plr);

    Menu->AddItem(0, "Mount Nether Drake", 1);

    Menu->AddItem(0, "Mount Armored Nether Drake", 2);

    Menu->AddItem(2, "Nevermind", 3);

    if(AutoSend) Menu->SendTo(Plr);

    }

    };

    void MounterItem::GossipSelectOption(Object* pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code){

    switch(IntId){

    case 1:{

    if(Plr->getLevel() >= 50){

    bool flytf = true;

    uint32 eventid = 2;

    uint32 displayid = 17772;

    WorldPacket fly(SMSG_MOVE_SET_FLY, 13);

    Plr->m_setflycheat = true;

    fly << Plr->GetNewGUID();

    fly << uint32(eventid);

    Plr->SendMessageToSet(&fly, true);

    Plr->SetPlayerSpeed(RUN, 10);

    Plr->SetPlayerSpeed(SWIM, 10);

    Plr->SetPlayerSpeed(RUNBACK, 10);

    Plr->SetPlayerSpeed(FLY, 20);

    Plr->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, displayid);

    Plr->Gossip_Complete();

    }else {

    Plr->BroadcastMessage("You Must be level 50 to use this mount!");

    }break;

    }

    case 2:{

    if(Plr->getLevel() >= 100){

    bool flytf = true;

    uint32 eventid = 2;

    uint32 displayid = 20809;

    WorldPacket fly(SMSG_MOVE_SET_FLY, 13);

    Plr->m_setflycheat = true;

    fly << Plr->GetNewGUID();

    fly << uint32(eventid);

    Plr->SendMessageToSet(&fly, true);

    Plr->SetPlayerSpeed(RUN, 15);

    Plr->SetPlayerSpeed(SWIM, 10);

    Plr->SetPlayerSpeed(RUNBACK, 10);

    Plr->SetPlayerSpeed(FLY, 30);

    Plr->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, displayid);

    Plr->Gossip_Complete();

    }else {

    Plr->BroadcastMessage("You Must be level 100 to use this mount!");

    }break;

    }

    case 3:{

    Plr->Gossip_Complete();

    }

    }

    }

    void SetupMounterItem(ScriptMgr *mgr){

    GossipScript * gs = (GossipScript*) new MounterItem();

    mgr->register_item_gossip_script(Mounter_Item_ID, gs);

    }

  5. #5
    Padlockcode's Avatar Active Member
    Reputation
    44
    Join Date
    Dec 2006
    Posts
    116
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    This is the same exact script from the arcemu website, that one didnt work for me but ill try it =/

  6. #6
    Padlockcode's Avatar Active Member
    Reputation
    44
    Join Date
    Dec 2006
    Posts
    116
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    This doesnt work for me

    i stuck it in the insta80.cpp for simplicity

    1>..\src\ExtraScripts\Insta80.cpp(23) : error C2065: 'SMSG_MOVE_SET_UNFLY' : undeclared identifier
    1>..\src\ExtraScripts\Insta80.cpp(81) : error C2065: 'SMSG_MOVE_SET_FLY' : undeclared identifier
    1>..\src\ExtraScripts\Insta80.cpp(121) : error C2065: 'SMSG_MOVE_SET_FLY' : undeclared identifier
    1>Build log was saved at "file://c:\Users\Todd\Desktop\Arcemu\trunk\src\scripts\projects\2008_int_release_extrasc ripts\BuildLog.htm"
    1>ExtraScripts - 3 error(s), 4 warning(s)
    ========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

  7. #7
    Sounddead's Avatar Contributor
    Reputation
    160
    Join Date
    Sep 2007
    Posts
    1,126
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I assumed that you don't want it to make you fly anyways, so just remove those lines.

    I live in a shoe

  8. #8
    Padlockcode's Avatar Active Member
    Reputation
    44
    Join Date
    Dec 2006
    Posts
    116
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    i like the fly function though ><

Similar Threads

  1. [Lua] Mount Vendor Script
    By Kaidos in forum WoW EMU General Releases
    Replies: 11
    Last Post: 03-31-2010, 05:04 PM
  2. Flying Mount Script
    By Padlockcode in forum WoW EMU Questions & Requests
    Replies: 0
    Last Post: 02-22-2009, 05:56 PM
  3. Replies: 0
    Last Post: 07-07-2008, 06:40 PM
  4. Replies: 0
    Last Post: 06-18-2008, 11:14 AM
  5. 2 Mount SQL Scripts and a World Enlarger!
    By Festigio in forum World of Warcraft Emulator Servers
    Replies: 2
    Last Post: 01-26-2008, 09:08 PM
All times are GMT -5. The time now is 05:35 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search