Hello & Welcome to our community. Is this your first visit? Register
Follow us on
Follow us on Facebook Follow us on Twitter Watch us on YouTube


MMOCoin

Likes Likes:  0
Results 1 to 3 of 3

Thread: Bounty Hunter

  1. #1
    Contributor
    StickyIcky's Avatar
    Join Date
    Jul 2008
    Location
    127.0.0.1
    Posts
    747
    Post Thanks / Like
    Rep Power
    18
    Reputation
    188

    Bounty Hunter


    Register to remove this ad
    Created By lilNate22

    WARNING this script is tested, and works fine on my hope pc (running winxp) HOWEVER on my WS 2003 SE it crashes server, im still wondering why



    Bounty Inserter
    Code:
        /*/Bounty Hunter NPC ftw *****ES
        By:AcDB Aka LilNate22 visit ac-db.info for more
        */
    
        #include "StdAfx.h"
        #include "Setup.h"
    
        #ifdef WIN32
        #pragma warning(disable:4305)        // warning C4305: 'argument' : truncation from 'double' to 'float'
        #endif
    
    
          //Start of Script
        class SCRIPT_DECL HunterNPC : 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);
            void Destroy()
            {
            delete this;
            }
        };
        void HunterNPC::GossipHello(Object* pObject, Player * Plr, bool AutoSend)
            {
            if(Plr->CombatStatus.IsInCombat()){   
            Plr->BroadcastMessage("You are in combat!");   
            return;
            }
                GossipMenu *Menu;
                objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 30013, Plr);
                Menu->AddItem(1, "I want to hire an Assasin for 100g to kill some one!",1,1);
                Menu->AddItem(2, "I want to put a bounty on some one for 50g!", 2,1);
              
               
    
    
                   if(AutoSend)
                    Menu->SendTo(Plr);
            }
        //Defining Cases
        void HunterNPC::GossipSelectOption(Object* pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code)
            {
                GossipMenu * Menu;
              uint32 plrid;
           
                switch(IntId)
              {
                case 1: //Service Center
                    {
                    uint32 price = 1000000;
                    uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
                    if(currentgold>=price)
                    {
                    int32 newgold = currentgold - price;
                    Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    QueryResult*namecheck=WorldDatabase.Query("select `guid` from `characters` where `name`='%s';",Code);
                    if(namecheck){
                    plrid=namecheck->Fetch()[0].GetUInt32();
                    WorldDatabase.Query("replace into `assasin` (`hunted`,`GUID`) Values ('1','%u');",plrid);
                    }
                    
                    delete namecheck;
                    }
                    else
                       Plr->BroadcastMessage("You Dont Have enough gold!");
                    Plr->Gossip_Complete();
                 }break;
    
                case 2: //bounty
                    {
                    uint32 price = 1000000/2;
                    uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
                    if(currentgold>=price)
                    {
                    int32 newgold = currentgold - price;
                    Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                     QueryResult*namecheck=WorldDatabase.Query("select `guid` from `characters` where `name`='%s';",Code);
                    if(namecheck)
                       {
                         plrid=namecheck->Fetch()[0].GetUInt32();
                         WorldDatabase.Query("replace into bountyhunts (`name`, `plrid`) VALUES ('%s','%u');",Code,plrid);
                       }
                    }
                    
                    Plr->Gossip_Complete();
                    
                 
                 
                 }break;
    
           
                   
               
                   
               
    
                }
        };
    
        void HunterNPC::GossipEnd(Object * pObject, Player* Plr)
    
        {
        GossipScript::GossipEnd(pObject, Plr);
        }
    
        void SetupHunterNPC(ScriptMgr * mgr)
    
        {
        GossipScript * gs = (GossipScript*) new HunterNPC();
        mgr->register_gossip_script(30015, gs);     
    
        }
    Bounty Informant
    Code:
        /* Scripted By LilNate22 of AC-DB
        **** you leeching queers+haters
        */
        #include "StdAfx.h"
        #include "Setup.h"
    
        #ifdef WIN32
        #pragma warning(disable:4305)        // warning C4305: 'argument' : truncation from 'double' to 'float'
        #endif
    
    
          //Start of Script
        class SCRIPT_DECL BHNPC : 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);
            void Destroy()
            {
            delete this;
            }
        };
        void BHNPC::GossipHello(Object* pObject, Player * Plr, bool AutoSend)
            {
            if(Plr->CombatStatus.IsInCombat()){   
            Plr->BroadcastMessage("You are in combat!");   
            return;
            }
                GossipMenu *Menu;
                objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 30013, Plr);
              QueryResult*bountyresult=WorldDatabase.Query("select `name` from `bountyhunts`;");
           if( bountyresult )
              {
                 int x=bountyresult->GetRowCount();
                 /*if(x==1)
                 {   
                    const char *name=result->Fetch()[0].GetString();
                    Menu->AddItem->(1,name,1);
                    return;
                 }*/
                 if(x!=1){
                  do
                 {
                  const char * name =bountyresult->Fetch()[0].GetString();
                  Menu->AddItem(1,name,1);
    
                 } while (bountyresult->NextRow());
                 }
                 else{
                    const char * name =bountyresult->Fetch()[0].GetString();
                  Menu->AddItem(1,name,1);
                 }
                    
                 
    
              delete bountyresult;
           }
           else
           {
              Plr->BroadcastMessage("There are no Bounties");
           }
               
    
    
                   if(AutoSend)
                    Menu->SendTo(Plr);
        }
        //Defining Cases
        void BHNPC::GossipSelectOption(Object* pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code)
            {
                GossipMenu * Menu;
              uint32 plrid;
           
                switch(IntId)
              {
              case 1:
                 Plr->BroadcastMessage("Go kill that Basterd!");
                 Plr->Gossip_Complete();
              }
    
           
                   
               
                   
               
    
               
        };
    
        void BHNPC::GossipEnd(Object * pObject, Player* Plr)
    
        {
        GossipScript::GossipEnd(pObject, Plr);
        }
    
        void SetupBHNPC(ScriptMgr * mgr)
    
        {
        GossipScript * gs = (GossipScript*) new BHNPC();
        mgr->register_gossip_script(30017, gs);   
        }
    Bounty PvP
    Code:
        /*/Bounty Hunter NPC ftw *****ES
        By:AcDB Aka LilNate22 visit ac-db.info for more
        */
    
    
        #include "StdAfx.h"
        #include "Setup.h"
    
        void onPVPBounty(Player*hunter, Player*bounty)
        {
    
    
           QueryResult*victimcheck=WorldDatabase.Query("select `name` from `bountyhunts` where `plrid`='%u';",bounty->GetGUID());
           bool bountycheck=false;
           if(victimcheck)
           bountycheck=true;
    
           if(bountycheck==true)
           {
              hunter->BroadcastMessage("Target...|CFFFF66FF Assasinated |r");
              QueryResult*clearbounty=WorldDatabase.Query("Delete from `bountyhunts` WHERE `plrid`='%u';",bounty->GetGUID());
              ItemPrototype *proto = ItemPrototypeStorage.LookupEntry(94);
                                SlotResult slotresult;
                                slotresult = hunter->GetItemInterface()->FindFreeInventorySlot(proto);
                                //hunter->BroadcastMessage("|CFFFF00FF Greater PvP Token|r Recieved");
                             if(!slotresult.Result)
                             {
                             hunter->GetItemInterface()->BuildInventoryChangeError(NULL, NULL, INV_ERR_INVENTORY_FULL);
                             hunter->BroadcastMessage("Bag Full!");
                             }
                             else
                                {
                                Item *itm = objmgr.CreateItem(94, hunter);
                                itm->SetUInt32Value(ITEM_FIELD_STACK_COUNT, 1);
                                hunter->GetItemInterface()->SafeAddItem(itm,slotresult.ContainerSlot, slotresult.Slot);
                                //hunter->GetItemInterface()->SafeAddItem(itm,slotresult.ContainerSlot, slotresult.Slot);
                                
                                
                                }
           delete victimcheck;
           delete clearbounty;
           
           }
        }
    
    
    
    
    
        void SetupBountyPVP(ScriptMgr * mgr)
        {
           //GossipScript * gs = (GossipScript*) new BountyNPC();
            /* Teleporter List */
            //mgr->register_gossip_script(100001, gs);          // Nega
            mgr->register_hook(SERVER_HOOK_EVENT_ON_KILL_PLAYER, onPVPBounty);
        }
    Assasin-this is safe
    Code:
        /* Assasin System
        Created by: Ac-Db (lilnate22) so suck it you ****s from *******
        License: GNuGPLv3
        Additional: leave credits or die::::Dedicated to Kristen
        */ 
        #include "StdAfx.h"
        #include "Setup.h"
    
        #ifdef WIN32
        #pragma warning(disable:4305)        // warning C4305: 'argument' : truncation from 'double' to 'float'
        #endif
    
    
    
        void AssasinSystem (Player* plr){
    
        char checking[200];
        int faction=plr->GetTeam();
        int killerfaction;
        CreatureSpawn * sp = new CreatureSpawn;      
              sprintf(checking,"SELECT `hunted` FROM `assasin` WHERE `GUID`='%i';", plr->GetGUID());
              QueryResult*check=WorldDatabase.Query(checking);
              uint32 hunt=0;
              
              if(!check)
              {return;}
              
              //Not sure if i need to do this 2x...prolly not...but to be safe...
              
              else//the player is hunted
              {
              if(check)
              {
                 Field*hunted=check->Fetch();
                 hunt=hunted[0].GetUInt32();
                 
              }
              }//else::if!check bracket
              
              //We need the opposite of the players faction
              if (faction==0)                 
              {killerfaction=2;}
              else
              {killerfaction=1;}
              /////////////////////////////////////////////
              if(hunt>0)
              {
              uint32 entry=123455;
              plr->BroadcastMessage("Theres an |CFF33CC33 Assasin after you|r!");
              plr->PlaySoundToSet(10178);
               CreatureInfo * info = CreatureNameStorage.LookupEntry(123455);
              info->GenerateModelId(&sp->displayid);
           sp->entry = entry;
           sp->form = 0;
           sp->id = objmgr.GenerateCreatureSpawnID();
           sp->movetype = 0;
           sp->x = plr->GetPositionX();
           sp->y = plr->GetPositionY();
           sp->z = plr->GetPositionZ();
           sp->o = plr->GetOrientation();
           sp->emote_state =0;
           sp->flags = 0;
           sp->factionid = killerfaction;
           sp->bytes=0;
           sp->bytes2=0;
           //sp->respawnNpcLink = 0;
           sp->stand_state = 0;
           sp->channel_spell=sp->channel_target_creature=sp->channel_target_go=0;
    
    
           Creature * p = plr->GetMapMgr()->CreateCreature(entry);
           ASSERT(p);
           p->Load(sp, (uint32)NULL, NULL);
           p->PushToWorld(plr->GetMapMgr());
           
           uint32 x = plr->GetMapMgr()->GetPosX(plr->GetPositionX());
           uint32 y = plr->GetMapMgr()->GetPosY(plr->GetPositionY());
    
           // Add spawn to map
           /*plr->GetMapMgr()->GetBaseMap()->GetSpawnsListAndCreate(
              x,
              y)->CreatureSpawns.push_back(sp);*/
           }
        }
           void Assasin(ScriptMgr * mgr)
        {
            mgr->register_hook(SERVER_HOOK_EVENT_ON_ENTER_WORLD, AssasinSystem);
        }
    Assasin Unit - also safe
    Code:
        #include "StdAfx.h"
        #include "Setup.h"
    
        #define PvP_Guard 123455
    
        class PvPGuard : public CreatureAIScript
        {
    
        public:
        ADD_CREATURE_FACTORY_FUNCTION(PvPGuard);
    
        PvPGuard(Creature* pCreature) : CreatureAIScript(pCreature)
        {
        }
    
        void OnTargetDied(Unit *mTarget)
        {
        if(mTarget->IsPlayer())
        {
        //random code to do something when the mob kills a player?
           QueryResult*reseting=WorldDatabase.Query("delete from `assasin` WHERE `GUID`='%u';",mTarget->GetGUID());
        _unit->Despawn(1,0);
        }
        }
    
        };
    
    
        void SetupPvPGuards(ScriptMgr * mgr)
        {
        mgr->register_creature_script(PvP_Guard, &PvPGuard::Create);
        }



    › See More: Bounty Hunter



  2. Related Threads - Scroll Down after related threads if you are only interested to view replies for above post/thread

  3. #2
    Beginner

    Join Date
    Jul 2008
    Posts
    10
    Post Thanks / Like
    Rep Power
    16
    Reputation
    1
    Thank you for the source

  4. #3
    Contributor
    Boxxy's Avatar
    Join Date
    Aug 2008
    Location
    Florida
    Posts
    351
    Post Thanks / Like
    Rep Power
    17
    Reputation
    136

    Register to remove this ad
    wo i havent seen this in forever i remember how cool it was to have a bounty placed on you and people hunting you lol

    Edit: need to spread teh rep cookies
    your mother

 

 

Visitors found this page by searching for:

www.negamgr org

SEO Blog

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
All times are GMT -5. The time now is 06:24 PM.
Powered by vBulletin® Copyright ©2000-2024, Jelsoft Enterprises Ltd.
See More links by ForumSetup.net. Feedback Buttons provided by Advanced Post Thanks / Like (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
vBulletin Licensed to: MMOPro.org