ش | ی | د | س | چ | پ | ج |
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
در این پست می خوام آموزش بدم چطوری میتونید اسکریپت Mall. رو برای ورژن TrinityCore های Rbac دار اضافه کنید و استفاده کنید.
این آموزش 2 تا مرحله داره:
مرحله اول) اضافه کردن اسکریپت به Source
مرحله دوم) تنظیمات SQL و نحوه Config آن
مرحله اول) ابتدا این اسکریپت رو به Source تون اضافه کنید.
/*
Developer(s): ?? ?? ??
Published: Imorate @ IranCore.Ir
*/
#include "ScriptPCH.h"
#include "language.h"
class mall_tele_commandscript : public CommandScript
{
public:
mall_tele_commandscript() : CommandScript("mall_tele_commandscript") { }
ChatCommand* GetCommands() const
{
static ChatCommand mallTeleCommandTable[] =
{
{ "mall", rbac::RBAC_PERM_COMMAND_MALL, false, &HandlemallTeleCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
return mallTeleCommandTable;
}
static bool HandlemallTeleCommand(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, -1716.653809f, -4228.059082f, 1.997937f, 3.675219f); // MapId, X, Y, Z, O, don't remove the "f" after X,Y,Z,O or it won't work.
return true;
}
};
void AddSC_mall_commandscript()
{
new mall_tele_commandscript();
}
توضیحات
1) با توجه به Line شماره 47 بعد از مختصات Map، حرف F رو به هیچ وجه پاک نکنید.
2) این اسکریپت مجهز به سیستم Anti Combat هستش یعنی زمانی که Player در Combat باشه، Command کار نمی کنه.
3) زمانی که Player بر روی Taxi یا Flying Mount باشد این اسکریپت به حالت Dissable در میاد و کار نمی کنه.
4) کامند Mall. به این Script اضافه شده و دیگه لازم نیست به DataBase کامند اضافه کنید.
مرحله دوم) Config های مربوط به Rbac در DataBase
Query رو*به*رو رو به DataBase اضافه کنید
/*
Published By Imorate @ IranCore.Ir
*/
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES(1007, 'Command: mall');
INSERT INTO `rbac_linked_permissions` (`id`,`linkedId`) VALUES(195, 1007);
Config های مربوط به Source
به آدرس زیر مراجعه کنید:
~\src\server\game\Accounts\Rbac.h
سپس Line زیر رو پیدا کنید:
// custom permissions 1000+
و زیرش این Line رو اضافه کنید:
RBAC_PERM_COMMAND_MALL = 1007,