Advertisement
Guest User

item_test

a guest
Apr 27th, 2014
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.15 KB | None | 0 0
  1. #include "ScriptPCH.h"
  2.  
  3. // Define la zona donde el jugador sera teletransportado si -> el Item expira o esta en una zona restringida
  4. // Define your zone to player will be teleported if -> Item expire or is in restricted zone
  5. // value: MapId, X, Y, Z, Orientation
  6. #define zone 1, -8531.564f, 2010.638f, 100.7205f, 0.380013f
  7.  
  8. class test_item : public ItemScript
  9. {
  10.  
  11. public:
  12.     test_item() : ItemScript("test item") {}
  13.  
  14.     bool OnUse(Player* player, Item* item, SpellCastTargets const& /*targets*/)
  15.     {
  16.         uint32 Ali = player->getRace() == RACE_DRAENEI || RACE_DWARF || RACE_GNOME || RACE_HUMAN || RACE_NIGHTELF;
  17.         if (player->IsInCombat() || player->IsMounted() || player->isMoving() || player->IsFlying()) // Combate, Montura, Moviendose, Volando
  18.         {
  19.             player->GetSession()->SendNotification("|cFFFFFC00[Sistema]|cFF00FFFF No puedes Cambiar de facci\xC3\xB3n en combate, Montura, Moviendote, Volando!");
  20.             //player->GetSession()->SendNotification("|cFFFFFC00[System]|cFF00FFFF You can't change faction when you'r moving, on mount or flying!");
  21.             return false;
  22.         }
  23.         else if (player->GetGroupInvite() || player->InArena() || player->InBattleground() || player->InBattlegroundQueue() || player->inRandomLfgDungeon() || player->isUsingLfg() || player->GetInstanceId() || player->GetZoneId() == 4197) //Arena, BG y colas
  24.         {
  25.             player->GetSession()->SendNotification("|cFFFFFC00[Sistema]|cFF00FFFF No puedes Cambiar de facci\xC3\xB3n en Arenas, BG o estando en cola para Aleatorias (BG e Instancias)!");
  26.             //player->GetSession()->SendNotification("|cFFFFFC00[System]|cFF00FFFF You can't change faction in Arenas, BG or LFG!");
  27.             return false;
  28.         }
  29.         // Restriction for Horde in Stormwind, Elwyn Forest
  30.         // Restriccion para la horda en Ventormenta, Bosque de Elwyn
  31.         else if (player->GetZoneId() == 2257 || player->GetZoneId() == 1 || player->GetZoneId() == 1537 /*forjaz*/ || player->GetZoneId() == 141 || player->GetZoneId() == 1657 /*darnassus*/ || player->GetZoneId() == 3524 || player->GetZoneId() == 3557 /*exodar*/ || player->GetZoneId() == 12 || /*ventormenta*/ player->GetAreaId() == 1519 && player->GetZoneId() == 1519 && player->HasAura(14268)) // zona
  32.         {
  33.             // If you want to teleport player when use the item in restricted zone just uncomment
  34.             // Si quieres que teletransporte al jugador cuando usa el item en las zonas restringidas solo descomenta
  35.             //player->TeleportTo(zone);
  36.             player->GetSession()->SendNotification("|cFFFFFC00[Sistema]|cFF00FFFF No puedes Cambiar de facci\xC3\xB3n en esta zona!");
  37.             //player->GetSession()->SendNotification("|cFFFFFC00[System]|cFF00FFFF You can't change faction in this area!");
  38.             return false;
  39.         }
  40.         // Restriction for Alliance in Orgrimmar, Durotar
  41.         // Restriccion para la Alianza en Orgrimmar, Durotar
  42.         else if (player->GetZoneId() == 3487 || player->GetZoneId() == 3430 || player->GetZoneId() == 85 || player->GetZoneId() == 1497 || player->GetZoneId() == 215 || player->GetZoneId() == 14 || player->GetZoneId() == 1638 || player->GetAreaId() == 1637 && player->GetZoneId() == 1637 /*&& player->HasAura(14267)*/)
  43.         {
  44.             // If you want to teleport player when use the item in restricted zone just uncomment
  45.             // Si quieres que teletransporte al jugador cuando usa el item en las zonas restringidas solo descomenta
  46.             player->TeleportTo(zone);
  47.             player->GetSession()->SendNotification("|cFFFFFC00[Sistema]|cFF00FFFF No puedes Cambiar de facci\xC3\xB3n en esta zona!");
  48.             //player->GetSession()->SendNotification("|cFFFFFC00[System]|cFF00FFFF You can't change faction in this area!");
  49.         }
  50.         else if (player->HasAura(5384) || player->HasAura(1784) || player->HasAura(1856) || player->HasAura(26889) || player->HasAura(2645) || player->HasAura(66) || player->HasAura(45438) || player->HasAura(5215) || player->HasAura(3448) || player->HasAura(11464) || player->HasAura(11392) || player->HasStealthAura()) // spells
  51.         {
  52.             // Restricted spells to prevent abuse
  53.             // Hechizos restringidos para evitar abuso
  54.             player->GetSession()->SendNotification("|cFFFFFC00[Sistema]|cFF00FFFF No puedes Cambiar de facci\xC3\xB3n con hechizos como Sigilo, Bloque de Hielo, Inivisibilidad, etc.!");
  55.             //player->GetSession()->SendNotification("|cFFFFFC00[System]|cFF00FFFF You can't change faction if you'r using stealth, ice block, invisibility, etc.!");
  56.             return false;
  57.         }
  58.         else
  59.         {
  60.             if (player->HasAura(14268)) // Prevent the player has double aura (Alianza and Horde) just to be safe
  61.             {
  62.                 player->RemoveAura(14268);
  63.                 player->setFactionForRace(RACE_HUMAN || RACE_DRAENEI);
  64.             }
  65.             else if (player->HasAura(14267)) // If player uses the item again, remove the aura and restore faction to the alliance
  66.             {
  67.                 player->RemoveAura(14267);
  68.                 player->setFactionForRace(RACE_HUMAN || RACE_DRAENEI);
  69.             }
  70.             else
  71.             {
  72.                 player->AddAura(14267, player); // Add Aura and if player has the aura aply the new faction
  73.                 if (player->HasAura(14267))
  74.                 {
  75.                     player->setFactionForRace(2); //horda 1 hora
  76.                     ChatHandler(player->GetSession()).PSendSysMessage("|cFFFFFC00[Sistema]|cFF00FFFF Si desconectas tu volveras a tu facci""\xC3\xB3""n original, usa denuevo el item para ser Horda!");
  77.                     //player->GetSession()->SendNotification("|cFFFFFC00[System]|cFF00FFFF Now you'r Horde!");
  78.                     player->GetSession()->SendNotification("|cFFFFFC00[Sistema]|cFF00FFFF Ahora eres Horda!");
  79.                     //ChatHandler(player->GetSession()).PSendSysMessage("|cFFFFFC00[System]|cFF00FFFF If you logout your factión will restore, then use the item again to get the Horde faction!");
  80.                 }
  81.             }
  82.             return true;
  83.         }
  84.  
  85.         return true;
  86.     }
  87.  
  88.     bool OnExpire(Player* player, ItemTemplate const* proto)
  89.     {
  90.         uint8 Ali = player->getRace() == RACE_DRAENEI || RACE_DWARF || RACE_GNOME || RACE_HUMAN || RACE_NIGHTELF;
  91.             player->RemoveAura(14267);
  92.             if (player->getRace() == Ali)
  93.             {
  94.                 player->setFactionForRace(RACE_HUMAN || RACE_DRAENEI);
  95.             }
  96.             //player->GetSession()->SendNotification("|cFFFFFC00[Sistema]|cFF00FFFF Your faction back to the original!");
  97.             player->GetSession()->SendNotification("|cFFFFFC00[Sistema]|cFF00FFFF Has vuelto a tu facci""\xC3\xB3""n original!");
  98.             player->TeleportTo(zone);
  99.  
  100.         return true;
  101.     }
  102. };
  103.  
  104. void AddSC_test_item()
  105. {
  106.     new test_item();
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement