daily pastebin goal
51%
SHARE
TWEET

Untitled

a guest May 16th, 2018 118 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "StdAfx.h"
  2. #include "Setup.h"
  3.  
  4.  
  5. class SCRIPT_DECL CustomItemNpc : public GossipScript
  6. {
  7. public:
  8.     void GossipHello(Object * pObject, Player* Plr, bool AutoSend);
  9.     void GossipSelectOption(Object * pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code);
  10.     void GossipEnd(Object * pObject, Player* Plr);
  11.     void Destroy()
  12.     {
  13.         delete this;
  14.     }
  15. //  int Choice;
  16. //  int getProficiency(Player * Plr);
  17.  
  18.    
  19. };
  20.  
  21. /*string getProficiency(Player * Plr)
  22. {
  23.     if( Plr->getClass() == PRIEST || Plr->getClass() == WARLOCK || Plr->getClass() == MAGE )
  24.         return "1";
  25.     if( Plr->getClass() == DRUID || Plr->getClass() == ROGUE )
  26.         return "2";
  27.     if( Plr->getClass() == HUNTER || Plr->getClass() == SHAMAN )
  28.         return "3";
  29.     if( Plr->getClass() == WARRIOR || Plr->getClass() == PALADIN )
  30.         return "4";
  31. }
  32. */
  33. void CustomItemNpc::GossipHello(Object * pObject, Player* Plr, bool AutoSend)
  34.     {
  35.         GossipMenu *Menu;
  36.  
  37.         objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  38.         if( Plr->getClass() == DRUID || Plr->getClass() == PRIEST || Plr->getClass() == WARLOCK || Plr->getClass() == PALADIN || Plr->getClass() == SHAMAN || Plr->getClass() == MAGE)
  39.         {
  40.             Menu->AddItem(0, "Spelldamage custom", 1);
  41. //          Choice = 0;
  42.         }
  43.         if( Plr->getClass() == DRUID || Plr->getClass() == WARRIOR || Plr->getClass() == PALADIN || Plr->getClass() == SHAMAN || Plr->getClass() == ROGUE || Plr->getClass() == HUNTER )
  44.         {
  45. //          Choice = 1;
  46.             Menu->AddItem(0, "Attack power custom", 2);
  47.         }
  48.  
  49.         if(AutoSend)
  50.             Menu->SendTo(Plr);
  51.     }
  52.  
  53. void CustomItemNpc::GossipSelectOption(Object * pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code)
  54. {
  55.     Creature * pCreature = (pObject->GetTypeId()==TYPEID_UNIT)?((Creature*)pObject):NULL;
  56.     if(pCreature==NULL)
  57.         return;
  58.  
  59.     static char displayid[255]="";
  60.     static char itemname[255]="";  
  61.  
  62.         GossipMenu *Menu;
  63.         switch(IntId)
  64.         {
  65.         case 0:     // Return to start
  66.                 GossipHello(pCreature, Plr, true);
  67.             break;
  68.  
  69.         case 1:
  70.             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  71.             /*const char *Name = Code;
  72.             Plr->BroadcastMessage(Code);
  73.            
  74.             Menu->AddItem(0, "Stamina?", 2, 1);
  75.            
  76.             Menu->SendTo(Plr);
  77.             Plr->Gossip_Complete();*/
  78.             Menu->AddItem(0, "Head", 3);
  79.             Menu->AddItem(0, "Neck", 4);
  80.             Menu->AddItem(0, "Shoulder", 5);
  81.             Menu->AddItem(0, "Cloak", 6);
  82.             Menu->AddItem(0, "Chest", 7);
  83.             Menu->AddItem(0, "Wrists", 8);
  84.             Menu->AddItem(0, "Hands", 9);
  85.             Menu->AddItem(0, "Belt", 10);
  86.             Menu->AddItem(0, "Legs", 11);
  87.             Menu->AddItem(0, "Feet", 12);
  88.             Menu->SendTo(Plr);
  89.             break;
  90.  
  91.         case 2:
  92.             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  93.             Menu->AddItem(0, "Head", 13);
  94.             Menu->AddItem(0, "Neck", 14);
  95.             Menu->AddItem(0, "Shoulder", 15);
  96.             Menu->AddItem(0, "Cloak", 16);
  97.             Menu->AddItem(0, "Chest", 17);
  98.             Menu->AddItem(0, "Wrists", 18);
  99.             Menu->AddItem(0, "Hands", 19);
  100.             Menu->AddItem(0, "Belt", 20);
  101.             Menu->AddItem(0, "Legs", 21);
  102.             Menu->AddItem(0, "Feet", 22);
  103.             Menu->SendTo(Plr);
  104.             break;
  105.  
  106.         case 3://head
  107.             {
  108.             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  109.             //const char *Stam = Code;
  110.             /*Plr->BroadcastMessage(Code);
  111.            
  112.             char query[255];
  113.             string entry;
  114.            
  115.             sprintf(query, "SELECT MAX(entry)+1 FROM items");
  116.             QueryResult * result = WorldDatabase.Query(query);
  117.             Field * fields = result->Fetch();
  118.             entry = fields[0].GetString();
  119.             Plr->BroadcastMessage(entry.c_str());
  120.  
  121.             ItemPrototypeStorage.Reload();
  122.             Plr->BroadcastMessage("Database reloaded");
  123.             Menu->SendTo(Plr);
  124.             */
  125.             Menu->AddItem(0, "GIEF NAME", 30, 1);
  126.             Menu->SendTo(Plr);
  127.            
  128.             }
  129.             break;
  130.  
  131.         case 30:
  132.             {
  133.                 objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  134.                 sprintf(itemname, "%s", Code);
  135.                 Menu->AddItem(0, "Enter entry of the item you want it to look like [NOT THE DISPLAYID]", 31);
  136.                                
  137.                 Menu->SendTo(Plr);
  138.             }
  139.  
  140.         case 31:
  141.             {
  142.                 objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  143.                 Menu->AddItem(0, "[1]", 32);
  144.                 Menu->AddItem(0, "[2]", 33);
  145.                 Menu->AddItem(0, "[3]", 34);
  146.                 Menu->AddItem(0, "[4]", 35);
  147.                 Menu->AddItem(0, "[5]", 36);
  148.                 Menu->AddItem(0, "[6]", 37);
  149.                 Menu->AddItem(0, "[7]", 38);
  150.                 Menu->AddItem(0, "[8]", 39);
  151.                 Menu->AddItem(0, "[9]", 40);
  152.                 Menu->AddItem(0, "[0]", 41);
  153.                 Menu->SendTo(Plr);
  154.             }
  155.             break;
  156.            
  157.         case 32:
  158.             {
  159.                 objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  160.                 sprintf(displayid, "%s1", displayid);
  161.                 Menu->AddItem(0, "Enter more numbers", 31);
  162.                 Menu->AddItem(0, "All numbers have been entered, create item", 300);
  163.                 Menu->SendTo(Plr);
  164.             }
  165.             break;
  166.         case 33:
  167.             {
  168.                 objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  169.                 sprintf(displayid, "%s2", displayid);
  170.                 Menu->AddItem(0, "Enter more numbers", 31);
  171.                 Menu->AddItem(0, "All numbers have been entered, create item", 300);
  172.                 Menu->SendTo(Plr);
  173.             }
  174.             break;
  175.         case 34:
  176.             {
  177.                 objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  178.                 sprintf(displayid, "%s3", displayid);
  179.                 Menu->AddItem(0, "Enter more numbers", 31);
  180.                 Menu->AddItem(0, "All numbers have been entered, create item", 300);
  181.                 Menu->SendTo(Plr);
  182.             }
  183.             break;
  184.         case 35:
  185.             {
  186.                 objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  187.                 sprintf(displayid, "%s4", displayid);
  188.                 Menu->AddItem(0, "Enter more numbers", 31);
  189.                 Menu->AddItem(0, "All numbers have been entered, create item", 300);
  190.                 Menu->SendTo(Plr);
  191.             }
  192.             break;
  193.         case 36:
  194.             {
  195.                 objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  196.                 sprintf(displayid, "%s5", displayid);
  197.                 Menu->AddItem(0, "Enter more numbers", 31);
  198.                 Menu->AddItem(0, "All numbers have been entered, create item", 300);
  199.                 Menu->SendTo(Plr);
  200.             }
  201.             break;
  202.         case 37:
  203.             {
  204.                 objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  205.                 sprintf(displayid, "%s6", displayid);
  206.                 Menu->AddItem(0, "Enter more numbers", 31);
  207.                 Menu->AddItem(0, "All numbers have been entered, create item", 300);
  208.                 Menu->SendTo(Plr);
  209.             }
  210.             break;
  211.         case 38:
  212.             {
  213.                 objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  214.                 sprintf(displayid, "%s7", displayid);
  215.                 Menu->AddItem(0, "Enter more numbers", 31);
  216.                 Menu->AddItem(0, "All numbers have been entered, create item", 300);
  217.                 Menu->SendTo(Plr);
  218.             }
  219.             break;
  220.         case 39:
  221.             {
  222.                 objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  223.                 sprintf(displayid, "%s8", displayid);
  224.                 Menu->AddItem(0, "Enter more numbers", 31);
  225.                 Menu->AddItem(0, "All numbers have been entered, create item", 300);
  226.                 Menu->SendTo(Plr);
  227.             }
  228.             break;
  229.         case 40:
  230.             {
  231.                 objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  232.                 sprintf(displayid, "%s9", displayid);
  233.                 Menu->AddItem(0, "Enter more numbers", 31);
  234.                 Menu->AddItem(0, "All numbers have been entered, create item", 300);
  235.                 Menu->SendTo(Plr);
  236.             }
  237.             break;
  238.         case 41:
  239.             {
  240.                 objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  241.                 sprintf(displayid, "%s0", displayid);
  242.                 Menu->AddItem(0, "Enter more numbers", 31);
  243.                 Menu->AddItem(0, "All numbers have been entered, create item", 300);
  244.                 Menu->SendTo(Plr);
  245.             }
  246.             break;
  247.  
  248.         case 300://Spelldmg head based on rolfcopter
  249.             {
  250.                 char query[255];
  251.                 char iquery[2550];
  252.                 char equery[255];
  253.                 char displayrealid[255];
  254.                 char pquery[255];
  255.                 string iProf;
  256.                 char rtard[255];
  257.  
  258.                 sprintf(pquery, "SELECT displayid FROM items WHERE entry=%s", displayid);
  259.                 QueryResult * result = WorldDatabase.Query(pquery);
  260.  
  261.                 if(!result)
  262.                     {
  263.                         Plr->BroadcastMessage("Something went wrong! Fucking rtard, try entering an entry that exists?");
  264.                         sprintf(rtard, "%s was to retarded to enter a valid entry-id, a kick follows to learn him a lesson.", Plr->GetName());
  265.                         sWorld.SendWorldText(rtard);
  266.                         Plr->Kick(5000);
  267.                         return;
  268.                     }
  269.  
  270.                     //Is there anything to display?
  271.                 if(result->GetRowCount() == 0)
  272.                 {
  273.                         Plr->BroadcastMessage("There is no data to display!");
  274.                         WorldDatabase.FreeQueryResult(result);
  275.                         return;
  276.                 }
  277.                
  278.                     Field * fields = result->Fetch();
  279.                     sprintf(displayrealid, "%s", fields[0].GetString() );
  280.                
  281.  
  282.                 /*sprintf(insertquery, "%s '%s')", insertquery, fields[0].GetString() );*/
  283.                 if( Plr->getClass() == PRIEST || Plr->getClass() == WARLOCK || Plr->getClass() == MAGE )
  284.                     iProf= "1";
  285.                 if( Plr->getClass() == DRUID || Plr->getClass() == ROGUE )
  286.                     iProf= "2";
  287.                 if( Plr->getClass() == HUNTER || Plr->getClass() == SHAMAN )
  288.                     iProf= "3";
  289.                 if( Plr->getClass() == WARRIOR || Plr->getClass() == PALADIN )
  290.                     iProf= "4";
  291.  
  292.                 sprintf(query, "SELECT * FROM items WHERE entry=99545"); //roflcopter
  293.                 sprintf(equery, "SELECT MAX(entry)+1 FROM items WHERE entry<80000");
  294.                
  295.                 /*sprintf(dquery, "SELECT * FROM custom_item WHERE id=(SELECT MAX(id) FROM custom_item)");
  296.                 QueryResult * dresult = WorldDatabase.Query(dquery);
  297.                 Field * dfields = dresult->Fetch();
  298.                 */
  299.  
  300.                 result = WorldDatabase.Query(equery);
  301.                 fields = result->Fetch();
  302.                 const char * entry = fields[0].GetString();
  303.                
  304.                 result = WorldDatabase.Query(query);
  305.                 fields = result->Fetch();
  306.    
  307.                 sprintf(iquery, "INSERT INTO items VALUES(%s", entry);
  308.                 for( int i = 1; i < 131; i++ )
  309.                 {
  310.                     if( i == 2 )
  311.                         sprintf(iquery, "%s, '%s'",iquery, iProf.c_str());
  312.                     else
  313.                     if( i == 4 || i == 5 || i == 6 || i == 7 )
  314.                         sprintf(iquery, "%s, '%s'",iquery, itemname );
  315.                     else
  316.                     if( i == 8 )
  317.                         sprintf(iquery, "%s, '%s'",iquery, displayrealid );
  318.                     else
  319.                         sprintf(iquery, "%s, '%s'",iquery, fields[i].GetString());
  320.                    
  321.                    
  322.                 }
  323.                 sprintf(iquery, "%s )", iquery);
  324.                 result = WorldDatabase.Query(iquery);
  325.                 Plr->BroadcastMessage("Item added to database");
  326.                 ItemPrototypeStorage.Reload();
  327.                 Plr->BroadcastMessage("Database reloaded");
  328.                 char msg[255];
  329.                 sprintf(msg, "%s made a new custom item called %s!!!", Plr->GetName(), itemname );
  330.                 sWorld.SendWorldText(msg);
  331.                 char broadcast[255];
  332.                 sprintf(broadcast, "Use .additem %s to add the item to your inventory.", entry);
  333.                 Plr->BroadcastMessage(broadcast);
  334.                 sprintf(displayid, "");
  335.                 sprintf(itemname, "");
  336.                 Plr->Gossip_Complete();
  337.             }
  338.             break;
  339.        
  340.  
  341.         case 99:
  342.         objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  343.         Menu->SendTo(Plr);
  344.         break;
  345.         }
  346. }
  347.  
  348.  
  349. void CustomItemNpc::GossipEnd(Object * pObject, Player* Plr)
  350. {
  351.     GossipScript::GossipEnd(pObject, Plr);}
  352.  
  353. void SetupCustomItemNpc(ScriptMgr * mgr)
  354. {
  355.     GossipScript * gs = (GossipScript*) new CustomItemNpc();
  356.    
  357.     mgr->register_gossip_script(50154, gs);
  358. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top