Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
435 changes: 435 additions & 0 deletions BloodMoneyDuel.cpp

Large diffs are not rendered by default.

12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# TrinityCore-335a
TrinityCore Release 335a

FixCore es una empresa de desarrollo con especialidad en el juego world of warcraft. @FixStore - @FixDevs - @FixCMS son propiedad de @FixCore.

El 80% de los trabajos que realiza @FixCore y sus demás subempresas son de manera gratuita sin embargo el 20% de los demás trabajos suelen ser de cobro debido a que se pudo haber requerido de algún pago extra para algún template, linea etc.. No acepte cosas de cobro que estén a nombre de @FixCore sin que usted esté seguro de que sea de manera legal ** En caso de tener dudas, inquietudes o desea contactarnos puede enviarnos un E-Mail ** [email protected]

---

FixCore is a development company specializing in the game world of warcraft. @FixStore - @FixDevs - @FixCMS Are owned by @FixCore.

80% of the work done @FixCore and other sub-companies are free however 20% of other jobs usually collection because it could have required some extra payment for a template, line etc .. Do not accept things that are a collection @FixCore name without you sure it legally ** If you have questions, concerns or want to contact you can send an E-Mail ** [email protected]
48 changes: 48 additions & 0 deletions Trainer.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#include "ScriptPCH.h"

class npc_morphs_fix : public CreatureScript
{
public:
npc_morphs_fix() : CreatureScript("npc_morphs_fix")
{
}

bool OnGossipHello(Player * pPlayer, Creature * pCreature)
{
pPlayer->PlayerTalkClass->ClearMenus();
pPlayer->ADD_GOSSIP_ITEM(8, "Morphs Part 1", GOSSIP_SENDER_MAIN, 4);
pPlayer->ADD_GOSSIP_ITEM(8, "Morphs Part 2", GOSSIP_SENDER_MAIN, 5);
pPlayer->PlayerTalkClass->SendGossipMenu(9425, pCreature->GetGUID());
return true;
}

bool OnGossipSelect(Player * pPlayer, Creature * pCreature, uint32 /*uiSender*/, uint32 uiAction)
{
if (!pPlayer)
return true;

switch (uiAction)
{
{
case 4:
pPlayer->CastSpell(pPlayer, 190000, true, NULL, NULL, pPlayer->GetGUID());
break;

case 5:
pPlayer->CastSpell(pPlayer, 190001, true, NULL, NULL, pPlayer->GetGUID());
break;




}
}
return true;
}

};

void AddSC_npc_morphs_fix()
{
new npc_morphs_fix();
}
162 changes: 162 additions & 0 deletions VisualWeapon.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
#include "ScriptPCH.h"

using namespace std;

#define DEFAULT_MESSAGE 907

struct VisualData
{
uint32 Menu;
uint32 Submenu;
uint32 Icon;
uint32 Id;
string Name;
};

VisualData vData[] =
{
{ 1, 0, GOSSIP_ICON_BATTLE, 3789, "Rabiar" },
{ 1, 0, GOSSIP_ICON_BATTLE, 3854, "Poder con hechizos" },
{ 1, 0, GOSSIP_ICON_BATTLE, 3273, "Verdugo Deathfrost" },
{ 1, 0, GOSSIP_ICON_BATTLE, 3225, "verdugo" },
{ 1, 0, GOSSIP_ICON_BATTLE, 3870, "El drenaje de la sangre"},
{ 1, 0, GOSSIP_ICON_BATTLE, 1899, "Arma profano"},
{ 1, 0, GOSSIP_ICON_BATTLE, 2674, "Erupción de hechizo"},
{ 1, 0, GOSSIP_ICON_BATTLE, 2675, "Batalla"},
{ 1, 0, GOSSIP_ICON_BATTLE, 2671, "Arcane y fuego el poder con hechizos"},
{ 1, 0, GOSSIP_ICON_BATTLE, 2672, "La sombra y el poder con hechizos de Escarcha"},
{ 1, 0, GOSSIP_ICON_BATTLE, 3365, "Runa de Swordshattering"},
{ 1, 0, GOSSIP_ICON_BATTLE, 2673, "Mangosta"},
{ 1, 0, GOSSIP_ICON_BATTLE, 2343, "el poder con hechizos"},
{ 1, 2, GOSSIP_ICON_TALK, 0, "Siguiente.." },

{ 2, 0, GOSSIP_ICON_BATTLE, 425, "Negro Templo Maniquí"},
{ 2, 0, GOSSIP_ICON_BATTLE, 3855, "Spell Power III"},
{ 2, 0, GOSSIP_ICON_BATTLE, 1894, "Icy Weapon"},
{ 2, 0, GOSSIP_ICON_BATTLE, 1103, "agilidad"},
{ 2, 0, GOSSIP_ICON_BATTLE, 1898, "Lifestealing"},
{ 2, 0, GOSSIP_ICON_BATTLE, 3345, "Vida terrestre I"},
{ 2, 0, GOSSIP_ICON_BATTLE, 1743, "MHTest02"},
{ 2, 0, GOSSIP_ICON_BATTLE, 3093, "poder de ataque contra muertos vivientes y demonios"},
{ 2, 0, GOSSIP_ICON_BATTLE, 1900, "Crusader"},
{ 2, 0, GOSSIP_ICON_BATTLE, 3846, "Spell Power II"},
{ 2, 0, GOSSIP_ICON_BATTLE, 1606, "Poder de Ataque"},
{ 2, 0, GOSSIP_ICON_BATTLE, 283, "Windfury I"},
{ 2, 0, GOSSIP_ICON_BATTLE, 1, "Muerdepiedras III"},
{ 2, 3, GOSSIP_ICON_TALK, 0, "Siguiente .."},
{ 2, 1, GOSSIP_ICON_TALK, 0, "..Atras"},

{ 3, 0, GOSSIP_ICON_BATTLE, 3265, "Bienaventurados Arma Coating"},
{ 3, 0, GOSSIP_ICON_BATTLE, 2, "Estigma de Escarcha I"},
{ 3, 0, GOSSIP_ICON_BATTLE, 3, "Lengua de Fuego III"},
{ 3, 0, GOSSIP_ICON_BATTLE, 3266, "Justos Arma Coating"},
{ 3, 0, GOSSIP_ICON_BATTLE, 1903, "Espíritu"},
{ 3, 0, GOSSIP_ICON_BATTLE, 13, "afilado"},
{ 3, 0, GOSSIP_ICON_BATTLE, 26, "Frost Petróleo"},
{ 3, 0, GOSSIP_ICON_BATTLE, 7, "Veneno mortal"},
{ 3, 0, GOSSIP_ICON_BATTLE, 803, "Fiery Weapon"},
{ 3, 0, GOSSIP_ICON_BATTLE, 1896, "El daño Weapon"},
{ 3, 0, GOSSIP_ICON_BATTLE, 2666, "Intelecto"},
{ 3, 0, GOSSIP_ICON_BATTLE, 25, "La sombra del aceite"},
{ 3, 2, GOSSIP_ICON_TALK, 0, "..Atras"},
};

class NPC_VisualWeapon : public CreatureScript
{
public:
NPC_VisualWeapon() : CreatureScript("NPC_VisualWeapon") { }

bool MainHand;

void SetVisual(Player* player, uint32 visual)
{
uint8 slot = MainHand ? EQUIPMENT_SLOT_MAINHAND : EQUIPMENT_SLOT_OFFHAND;

Item* item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, slot);

if (!item)
{
ChatHandler(player->GetSession()).PSendSysMessage("No hay armaduras disponibles para cambiar el Visual.");
return;
}

const ItemTemplate* itemTemplate = item->GetTemplate();

if (itemTemplate->SubClass == ITEM_SUBCLASS_ARMOR_SHIELD ||
itemTemplate->SubClass == ITEM_SUBCLASS_ARMOR_BUCKLER ||
itemTemplate->SubClass == ITEM_SUBCLASS_WEAPON_SPEAR ||
itemTemplate->SubClass == ITEM_SUBCLASS_WEAPON_BOW ||
itemTemplate->SubClass == ITEM_SUBCLASS_WEAPON_GUN ||
itemTemplate->SubClass == ITEM_SUBCLASS_WEAPON_obsolete ||
itemTemplate->SubClass == ITEM_SUBCLASS_WEAPON_EXOTIC ||
itemTemplate->SubClass == ITEM_SUBCLASS_WEAPON_EXOTIC2 ||
itemTemplate->SubClass == ITEM_SUBCLASS_WEAPON_MISC ||
itemTemplate->SubClass == ITEM_SUBCLASS_WEAPON_THROWN ||
itemTemplate->SubClass == ITEM_SUBCLASS_WEAPON_CROSSBOW ||
itemTemplate->SubClass == ITEM_SUBCLASS_WEAPON_WAND ||
itemTemplate->SubClass == ITEM_SUBCLASS_WEAPON_FISHING_POLE ||
itemTemplate->SubClass == ITEM_SUBCLASS_WEAPON_obsolete)
return;

player->SetUInt16Value(PLAYER_VISIBLE_ITEM_1_ENCHANTMENT + (item->GetSlot() * 2), 0, visual);
}

void GetMenu(Player* player, Creature* creature, uint32 menuId)
{
for (uint8 i = 0; i < (sizeof(vData) / sizeof(*vData)); i++)
{
if (vData[i].Menu == menuId)
player->ADD_GOSSIP_ITEM(vData[i].Icon, vData[i].Name, GOSSIP_SENDER_MAIN, i);
}

player->SEND_GOSSIP_MENU(DEFAULT_MESSAGE, creature->GetGUID());
}

bool OnGossipHello(Player* player, Creature* creature)
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface/ICONS/inv_misc_tournaments_symbol_draenei:30|t Una Mano", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface/ICONS/inv_misc_tournaments_symbol_draenei:30|t Mano Izquierda", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface/ICONS/INV_Misc_Coin_05:30|t Salir", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);

player->SEND_GOSSIP_MENU(DEFAULT_MESSAGE, creature->GetGUID());
return true;
}

bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
{
player->PlayerTalkClass->ClearMenus();

switch (action)
{
case GOSSIP_ACTION_INFO_DEF + 1:
MainHand = true;
GetMenu(player, creature, 1);
return false;

case GOSSIP_ACTION_INFO_DEF + 2:
MainHand = false;
GetMenu(player, creature, 1);
return false;

case GOSSIP_ACTION_INFO_DEF + 3:
player->CLOSE_GOSSIP_MENU();
return false;
}

uint32 menuData = vData[action].Submenu;

if (menuData == 0)
{
SetVisual(player, vData[action].Id);
menuData = vData[action].Menu;
}

GetMenu(player, creature, menuData);
return true;
}
};

void AddSC_NPC_VisualWeapon()
{
new NPC_VisualWeapon;
}
32 changes: 32 additions & 0 deletions characternuevoannounce.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
//CastleDEV
#include "ScriptPCH.h"

class announce_login : public PlayerScript
{
public:
announce_login() : PlayerScript("announce_login") {}

void OnLogin(Player* player, bool /*loginFirst*/)
{
std::string msg;

if(player->GetTotalPlayedTime() < 5)
{
msg += "|cff54b5ffWelcome to our new character called|r ";
msg += player->GetName();
msg += "|cff54b5ff!|r";
sWorld->SendServerMessage(SERVER_MSG_STRING, msg.c_str(), 0);
player->CastSpell(player, 55420);
return;
}
else
{
}
}

};

void AddSC_announce_login()
{
new announce_login;
}
103 changes: 103 additions & 0 deletions chat_censure.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
#include "ScriptPCH.h"
#include "Channel.h"
#include "Language.h"
#include <string>

class System_Censure : public PlayerScript
{
public:
System_Censure() : PlayerScript("System_Censure") {}

void OnChat(Player* player, uint32 /*type*/, uint32 lang, std::string& msg)
{
CheckMessage(player, msg, lang, NULL, NULL, NULL, NULL);
}

void OnChat(Player* player, uint32 /*type*/, uint32 lang, std::string& msg, Player* receiver)
{
CheckMessage(player, msg, lang, receiver, NULL, NULL, NULL);
}

void OnChat(Player* player, uint32 /*type*/, uint32 lang, std::string& msg, Group* group)
{
CheckMessage(player, msg, lang, NULL, group, NULL, NULL);
}

void OnChat(Player* player, uint32 /*type*/, uint32 lang, std::string& msg, Guild* guild)
{
CheckMessage(player, msg, lang, NULL, NULL, guild, NULL);
}

void OnChat(Player* player, uint32 /*type*/, uint32 lang, std::string& msg, Channel* channel)
{
CheckMessage(player, msg, lang, NULL, NULL, NULL, channel);
}

void CheckMessage(Player* player, std::string& msg, uint32 lang, Player* /*receiver*/, Group* /*group*/, Guild* /*guild*/, Channel* channel)
{
if (player->IsGameMaster() || lang == LANG_ADDON)
return;

//transform to lowercase (for simpler checking)
std::string lower = msg;
std::transform(lower.begin(), lower.end(), lower.begin(), ::tolower);

const uint8 cheksSize = 18;
std::string checks[cheksSize];
checks[0] ="http://";
checks[1] =".com";
checks[2] =".net";
checks[3] =".org";
checks[4] =".ru";
checks[5] ="rondor";
checks[6] ="www.";
checks[7] ="xxx";
checks[8] = "verga";
checks[9] = "server";
checks[10] = "servidor";
checks[11] = ".la";
checks[12] = "chupamela";
checks[13] = "mamamela";
checks[14] = "server";
checks[15] = ".info";
checks[16] = ".tk";
checks[17] = ".ml";
checks[18] = "puto";
checks[19] = "marico";
checks[20] = "noob";
checks[21] = "pendejo";
checks[22] = "deathforce";
checks[23] = "death";
checks[24] = "force";
checks[25] = "dencel";
checks[26] = "servegame";
checks[27] = ".biz";
checks[28] = ".no-ip";

for (int i = 0; i < cheksSize; ++i)
if (lower.find(checks[i]) != std::string::npos)
{
msg = "No se tolera el Spam!";
msg = lang == LANG_GM_SILENCE;
ChatHandler(player->GetSession()).PSendSysMessage("|TInterface/ICONS/achievement_leader_sylvanas:20|tNo se tolera el Spam!");
std::string plr = player->GetName();
std::string gender = player->getGender() == GENDER_FEMALE ? "esta" : "esta";
bool ingroup = player->GetGroup();
std::string tag_colour = "7bbef7";
std::string plr_colour = "ff0000";
std::string boss_colour = "18be00";
std::ostringstream stream;
stream << "|CFF" << tag_colour <<
"[Anuncio de Spam]|r:|cff" << plr_colour << " " << plr <<
(ingroup ? " el " : " ") << gender << (ingroup ? " Spameando " : " Spameando ") << "!";
sWorld->SendGMText(LANG_GM_BROADCAST, stream.str().c_str());
return;
}

}
};

void AddSC_System_Censure()
{
new System_Censure();
}
Loading