E:\Trinity\src\server\scripts\Custom\vipcommands.cpp
#include "ScriptMgr.h"
#include "ObjectMgr.h"
#include "MapManager.h"
#include "Chat.h"
#include "Common.h"
class vipcommands : public CommandScript
{
public:
vipcommands() : CommandScript("vipcommands") { }
ChatCommand* GetCommands() const
{
static ChatCommand vipCommandTable[] =
{
{ "mall", SEC_PLAYER, true, &HandleVipMallCommand, "", NULL },
{ "chat", SEC_PLAYER, true, &HandleVipChatCommand, "", NULL },
{ "changerace", SEC_PLAYER, false, &HandleChangeRaceCommand, "", NULL },
{ "changefaction", SEC_PLAYER, false, &HandleChangeFactionCommand, "", NULL },
{ "maxskills", SEC_PLAYER, false, &HandleMaxSkillsCommand, "", NULL },
{ "customize", SEC_PLAYER, false, &HandleCustomizeCommand, "", NULL },
{ "tele", SEC_PLAYER, false, &HandleTeleCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "vip", SEC_PLAYER, true, NULL, "", vipCommandTable},
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}
static bool HandleTeleCommand(ChatHandler* handler, const char* args)
{
if (!*args)
return false;
Player* me = handler->GetSession()->GetPlayer();
// id, or string, or [name] Shift-click form |color|Htele:id|h[name]|h|r
GameTele const* tele = handler->extractGameTeleFromLink((char*)args);
if (!tele)
{
handler->SendSysMessage(LANG_COMMAND_TELE_NOTFOUND);
handler->SetSentErrorMessage(true);
return false;
}
if (me->isInCombat())
{
handler->SendSysMessage(LANG_YOU_IN_COMBAT);
handler->SetSentErrorMessage(true);
return false;
}
MapEntry const* map = sMapStore.LookupEntry(tele->mapId);
if (!map || map->IsBattlegroundOrArena())
{
handler->SendSysMessage(LANG_CANNOT_TELE_TO_BG);
handler->SetSentErrorMessage(true);
return false;
}
// stop flight if need
if (me->isInFlight())
{
me->GetMotionMaster()->MovementExpired();
me->CleanupAfterTaxiFlight();
}
// save only in non-flight case
else
me->SaveRecallPosition();
me->TeleportTo(tele->mapId, tele->position_x, tele->position_y, tele->position_z, tele->orientation);
return true;
}
static bool HandlevipCommand(ChatHandler* handler, const char* args)
{
Player* me = handler->GetSession()->GetPlayer();
me->Say("vip command?", LANG_UNIVERSAL);
return true;
}
static bool HandleChangeRaceCommand(ChatHandler* handler, const char* args)
{
Player* me = handler->GetSession()->GetPlayer();
me->SetAtLoginFlag(AT_LOGIN_CHANGE_RACE);
handler->PSendSysMessage("Relog to change race of your character.");
return true;
}
static bool HandleChangeFactionCommand(ChatHandler* handler, const char* args)
{
Player* me = handler->GetSession()->GetPlayer();
me->SetAtLoginFlag(AT_LOGIN_CHANGE_FACTION);
handler->PSendSysMessage("Relog to change faction of your character.");
return true;
}
static bool HandleMaxSkillsCommand(ChatHandler* handler, const char* args)
{
Player* me = handler->GetSession()->GetPlayer();
me->UpdateSkillsForLevel();
handler->PSendSysMessage("Your weapon skills are now maximized.");
return true;
}
static bool HandleCustomizeCommand(ChatHandler* handler, const char* args)
{
Player* me = handler->GetSession()->GetPlayer();
me->SetAtLoginFlag(AT_LOGIN_CUSTOMIZE);
handler->PSendSysMessage("Relog to customize your character.");
return true;
}
static bool HandleVipMallCommand(ChatHandler* handler, const char* args)
{
Player* me = handler->GetSession()->GetPlayer();
if (me->isInCombat())
{
handler->SendSysMessage(LANG_YOU_IN_COMBAT);
handler->SetSentErrorMessage(true);
return false;
}
// stop flight if need
if (me->isInFlight())
{
me->GetMotionMaster()->MovementExpired();
me->CleanupAfterTaxiFlight();
}
// save only in non-flight case
else
me->SaveRecallPosition();
me->TeleportTo(0, 23.8378f, -1588.85f, 195.419f, 4.54306f); // MapId, X, Y, Z, O
return true;
}
static bool HandleVipChatCommand(ChatHandler * handler, const char * args)
{
if (!args)
return false;
std::string msg = "";
Player * player = handler->GetSession()->GetPlayer();
switch(player->GetSession()->GetSecurity())
{
case SEC_Vip: // VIP
msg += "|cffff0000[V.I.P|r |cff18be00Chat:|r [";
msg += player->GetName();
msg += "]: |CFF7BBEF7";
break;
case SEC_MODERATOR: // Trial GM
msg += "|cffff0000[Trial GM|r |cff18be00Chat:|r [";
msg += player->GetName();
msg += "]: |CFF7BBEF7";
break;
case SEC_JuniorGM: // Junior GM
msg += "|CFF520084[Junior GM|r |cff18be00Chat:|r [";
msg += player->GetName();
msg += "]: |CFF7BBEF7";
break;
case SEC_GAMEMASTER: // GM
msg += "|cff00ffff[GM|r |cff18be00Chat:|r [";
msg += player->GetName();
msg += "]: |CFF7BBEF7";
break;
case SEC_SeniorGM: // Senior GM
msg += "|CFF7BBEF7[Senior GM|r |cff18be00Chat:|r [";
msg += player->GetName();
msg += "]: |CFF7BBEF7";
break;
case SEC_ADMINISTRATOR: // Admin
msg += "|cfffa9900[Admin|r |cff18be00Chat:|r [";
msg += player->GetName();
msg += "]: |CFF7BBEF7";
break;
case SEC_SeniorAdmin: // Senior Admin
msg += "|CFF18E7BD[Senior Admin|r |cff18be00Chat:|r [";
msg += player->GetName();
msg += "]: |CFF7BBEF7";
break;
case SEC_Dev: // Dev
msg += "|CFF18BE00[Dev|r |cff18be00Chat:|r [";
msg += player->GetName();
msg += "]: |CFF7BBEF7";
break;
case SEC_HeadDev: // Head Dev
msg += "|CFF086142[Head Dev|r |cff18be00Chat:|r [";
msg += player->GetName();
msg += "]: |CFF7BBEF7";
break;
case SEC_HeadAdmin: // Head Admin
msg += "|CFF18BE00[Head Admin|r |cff18be00Chat:|r [";
msg += player->GetName();
msg += "]: |CFF7BBEF7";
break;
case SEC_CoOwner: // CO - OWNER
msg += "|CFF7BBEF7[Co-Owner|r |cff18be00Chat:|r [";
msg += player->GetName();
msg += "]: |cffff0000";
break;
case SEC_Owner: // OWNER
msg += "|CFF7BBEF7[OWNER|r |cff18be00Chat:|r [";
msg += player->GetName();
msg += "]: |cffff0000";
break;
case SEC_CONSOLE: // Root, Console!
msg += "|CFF18BE00[ROOT|r |cff18be00Chat:|r [";
msg += player->GetName();
msg += "]: |cffff0000";
break;
}
msg += args;
sWorld->SendServerMessage(SERVER_MSG_STRING, msg.c_str(), 0);
return true;
}
};
void AddSC_vipcommands()
{
new vipcommands();
E:\Trinity\src\server\scripts\Custom\CMakeLists.txt
# Copyright (C) 2008-2011 TrinityCore <http://www.trinitycore.org/>
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
set(scripts_STAT_SRCS
${scripts_STAT_SRCS}
+Custom/vipcommands.cpp
)
message(" -> Prepared: Custom")
E:\Trinity\src\server\game\Scripting\ScriptLoader.cpp
#ifdef SCRIPTS
/* This is where custom scripts' loading functions should be declared. */
+void AddSC_vipcommands();
#endif
void AddCustomScripts()
{
#ifdef SCRIPTS
/* This is where custom scripts should be added. */
+AddSC_vipcommands();
#endif
}
E:\Trinity\src\server\shared\Common.h
-for fix vip chat!
enum AccountTypes
{
- SEC_PLAYER = 0,
- SEC_MODERATOR = 1,
- SEC_GAMEMASTER = 2,
- SEC_ADMINISTRATOR = 3,
- SEC_CONSOLE = 4 // must be always last in list, accounts must have less security level always also
+ SEC_PLAYER = 0, // PLAYER
+ SEC_Vip = 1, // VIP
+ SEC_MODERATOR = 2, // TRAILGM
+ SEC_JuniorGM = 3, // Junior GM
+ SEC_GAMEMASTER = 4, // GM
+ SEC_SeniorGM = 5, // Senior GM
+ SEC_ADMINISTRATOR = 6, // Admin
+ SEC_SeniorAdmin = 7, // Senior Admin
+ SEC_Dev = 8, // DEV
+ SEC_HeadDev = 9, // HEAD DEV
+ SEC_HeadAdmin = 10, // HEAD ADMIN !
+ SEC_CoOwner = 11, // CO-OWNER !
+ SEC_Owner = 12, // OWNER !
+ SEC_CONSOLE = 13 // CONSOLE
+
};
SQL :: VIP Commands..
INSERT INTO `command` VALUES ('vip', '1', 'Syntax: .vip');
INSERT INTO `command` VALUES ('vip changerace', '1', 'Syntax: .vip changerace');
INSERT INTO `command` VALUES ('vip changefaction', '1', 'Syntax: .vip changefaction');
INSERT INTO `command` VALUES ('vip maxskills', '1', 'Syntax: .vip maxskills');
INSERT INTO `command` VALUES ('vip customize', '1', 'Syntax: .vip customize');
INSERT INTO `command` VALUES ('vip mall', '1', 'Syntax: .vip mall');
INSERT INTO `command` VALUES ('vip chat', '1', 'Syntax: .vip chat');
INSERT INTO `command` VALUES ('vip tele', '1', 'Syntax: .vip tele #location\r\n\r\nTeleport player to a given location.');
List :: VIP Commands..
.vip .
.vip changerace ......
.vip changefaction ......
.vip maxskills ......
.vip customize ......
.vip mall :: location in vip mall
.vip chat :: Do .vip chat "text" to access our global chat!
.vip tele ::#location\r\n\r\nTeleport player to a given location.
commands .buff .mall .heal
#include "ScriptPCH.h"
#include "Chat.h"
uint32 auras[] = { 15366, 16609, 48073, 48162, 48074, 48170, 43223, 48934, 48938, 25899, 36880, 43015, 43017, 9381, 467, 69994, 3077, 78, 33080, 33081, 33082, 24705, 26035, 48161, 48073, 48469, 16609, 15366 };
class buff_commandscript : public CommandScript
{
public:
buff_commandscript() : CommandScript("buff_commandscript") { }
ChatCommand* GetCommands() const
{
static ChatCommand IngameCommandTable[] =
{
{ "buff", SEC_PLAYER, false, &HandleBuffCommand, "", NULL },
{ "mall", SEC_PLAYER, false, &HandleMallCommand, "", NULL },
{ "heal", SEC_PLAYER, false, &HandleHealCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
return IngameCommandTable;
}
static bool HandleBuffCommand(ChatHandler * handler, const char * args)
{
Player * me = handler->GetSession()->GetPlayer();
me->RemoveAurasByType(SPELL_AURA_MOUNTED);
for(int i = 0; i < 30; i++)
me->AddAura(auras[i], me);
handler->PSendSysMessage("You're buffed now!");
return true;
}
static bool HandleMallCommand(ChatHandler * handler, const char * args)
{
Player * me = handler->GetSession()->GetPlayer();
me-> TeleportTo(530, -1850.209961f, 5435.821777f, -10.961435f, 3.403913f);
handler->PSendSysMessage("You Have Been Teleported!");
return true;
}
static bool HandleHealCommand(ChatHandler * handler, const char * args)
{
Player * me = handler->GetSession()->GetPlayer();
me-> SetHealth(me->GetMaxHealth());
handler->PSendSysMessage("You Have Been Healed!");
return true;
}
};
void AddSC_Ingame_commandscript()
{
new buff_commandscript();
}
http://pastebin.com/EtU6GCB9 (http://pastebin.com/EtU6GCB9)