示例#1
0
bool GossipHello_npc_guildmaster(Player *player, Creature *_creature)
{
    player->ADD_GOSSIP_ITEM(ICON_GOSSIP_BALOON, MSG_GOSSIP_TELE, 
        GOSSIP_SENDER_MAIN, ACTION_TELE);

    if (isPlayerGuildLeader(player))
    {
        uint8 buyEnabled = sConfig.GetIntDefault("GuildMasterNPC.BuyEnabled", 1);
        if ( buyEnabled == 1 )
        {
            //show additional menu for guild leader
            std::string buyGHGossip = sConfig.GetStringDefault("GuildMasterNPC.BuyGossip", "Buy a Guild House for 500 Gold");
            player->ADD_GOSSIP_ITEM(ICON_GOSSIP_GOLD, buyGHGossip,
                GOSSIP_SENDER_MAIN, ACTION_SHOW_BUYLIST);
        }
        if (isPlayerHasGuildhouse(player, _creature))
        {
            uint8 sellEnabled = sConfig.GetIntDefault("GuildMasterNPC.SellEnabled", 1);
            if ( sellEnabled == 1 )
            {
                //and additional for guildhouse owner
                std::string sellGHGossip = sConfig.GetStringDefault("GuildMasterNPC.SellGossip", "Sell your Guild House for 400 Gold");
                player->PlayerTalkClass->GetGossipMenu().AddMenuItem(ICON_GOSSIP_GOLD, sellGHGossip, GOSSIP_SENDER_MAIN, ACTION_SELL_GUILDHOUSE, MSG_CODEBOX_SELL, 0, true);
            }
        }
    }
    player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID());
    return true;
}
void buyGuildhouse(Player *player, Creature *_creature, uint32 guildhouseId)
{
    if (player->GetMoney() < COST_GH_BUY)
    {
        char msg[100];
        sprintf(msg, MSG_NOTENOUGHMONEY, COST_GH_BUY / 10000);
        _creature->MonsterWhisper(msg, player->GetGUID());
        return;
    }

    if (isPlayerHasGuildhouse(player, _creature, true))
    {
        return;
    }

    QueryResult result;
    result = CharacterDatabase.PQuery("SELECT `id` FROM `guildhouses` WHERE `id` = %u AND `guildId` <> 0", guildhouseId);

    if (result)
    {
    _creature->MonsterWhisper(MSG_GHOCCUPIED, player->GetGUID());
    return;
    }

    result = CharacterDatabase.PQuery("UPDATE `guildhouses` SET `guildId` = %u WHERE `id` = %u",
    player->GetGuildId(), guildhouseId);

    if (result)
        player->ModifyMoney(-COST_GH_BUY);
    _creature->MonsterSay(MSG_CONGRATULATIONS, LANG_UNIVERSAL, player->GetGUID());
}
示例#3
0
void sellGuildhouse(Player *player, Creature *_creature)
{
    uint32 sellprice = (sConfig.GetIntDefault("GuildMasterNPC.SellPriceInGold",400)*10000);
    if (isPlayerHasGuildhouse(player, _creature))
    {
        QueryResult_AutoPtr result = CharacterDatabase.PQuery("UPDATE `guild_houses` SET `guildId` = 0 WHERE `guildId` = %u",
        player->GetGuildId());
        
        player->ModifyMoney(sellprice);

        //display message e.g. "here your money etc."
        char msg[100];
        sprintf(msg, MSG_SOLD, (sellprice/10000));
        _creature->MonsterWhisper(msg, player->GetGUID());
    }
}
void sellGuildhouse(Player *player, Creature *_creature)
{
    if (isPlayerHasGuildhouse(player, _creature))
    {
        QueryResult result;
        result = CharacterDatabase.PQuery("UPDATE `guildhouses` SET `guildId` = 0 WHERE `guildId` = %u",
        player->GetGuildId());

        if (result)
            player->ModifyMoney(COST_GH_SELL);

        char msg[100];
        sprintf(msg, MSG_SOLD, COST_GH_SELL / 10000);
        _creature->MonsterWhisper(msg, player->GetGUID());
    }
}
示例#5
0
void sellGuildhouse(Player *player, Creature *_creature)
{
 if (isPlayerHasGuildhouse(player, _creature))
 {
 QueryResult result;
 result = WorldDatabase.PQuery("UPDATE `guildhouses` SET `guildId` = 0 WHERE `guildId` = %u",
 player->GetGuildId());

 player->ModifyMoney(sConfigMgr->GetIntDefault("GuildHouse.SellCost", false) * 10000);

 //display message e.g. "here your money etc."
 char msg[100];
 sprintf(msg, MSG_SOLD, sConfigMgr->GetIntDefault("GuildHouse.SellCost", false));
 _creature->Whisper(msg, LANG_UNIVERSAL, player);
 }
}
示例#6
0
bool GossipHello_guildmaster(Player *player, Creature *_creature)
{
	player->ADD_GOSSIP_ITEM(ICON_GOSSIP_BALOON, MSG_GOSSIP_TELE, 
		GOSSIP_SENDER_MAIN, ACTION_TELE);

	if (isPlayerGuildLeader(player))
	{
		//show additional menu for guild leader
		player->ADD_GOSSIP_ITEM(ICON_GOSSIP_GOLD, MSG_GOSSIP_BUY,
			GOSSIP_SENDER_MAIN, ACTION_SHOW_BUYLIST);
		if (isPlayerHasGuildhouse(player, _creature))
		{
			//and additional for guildhouse owner
			player->PlayerTalkClass->GetGossipMenu().AddMenuItem(ICON_GOSSIP_GOLD, MSG_GOSSIP_SELL, GOSSIP_SENDER_MAIN, ACTION_SELL_GUILDHOUSE, MSG_CODEBOX_SELL, 0, true);
		}
	}
	player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID());
	return true;
}
示例#7
0
void sellGuildhouse(Player *player, Creature *_creature)
{
	if (isPlayerHasGuildhouse(player, _creature))
	{
		QueryResult_AutoPtr result;

		result = WorldDatabase.PQuery("UPDATE `guildhouses` SET `guildId` = 0 WHERE `guildId` = %u",
		player->GetGuildId());
		
		if (result)
			
		player->ModifyMoney(COST_GH_SELL);

		//display message e.g. "here your money etc."
		char msg[100];
		sprintf(msg, MSG_SOLD, COST_GH_SELL / 10000);
		_creature->MonsterWhisper(msg, player->GetGUID());
	}
}
示例#8
0
void buyGuildhouse(Player *player, Creature *_creature, uint32 guildhouseId)
{

 bool token = sConfigMgr->GetBoolDefault("GuildHouse.TokenOrGold", false);
 int cost = sConfigMgr->GetBoolDefault("GuildHouse.Cost", false);

 if (player->GetMoney() < COST_GH_BUY)
 {
 //show how much money player need to buy GH (in gold)
 char msg[100];
 sprintf(msg, MSG_NOTENOUGHMONEY, COST_GH_BUY - sConfigMgr->GetBoolDefault("GuildHouse.Cost", false));
 _creature->Whisper(msg, LANG_UNIVERSAL, player);
 return;
 }

 if (isPlayerHasGuildhouse(player, _creature, true))
 {
 //player already have GH
 return;
 }

 QueryResult result;

 //check if somebody already occupied this GH
 result = WorldDatabase.PQuery("SELECT `id` FROM `guildhouses` WHERE `id` = %u AND `guildId` <> 0", guildhouseId);

 if (result)
 {
 _creature->Whisper(MSG_GHOCCUPIED, LANG_UNIVERSAL, player);
 return;
 }

 //update DB
 result = WorldDatabase.PQuery("UPDATE `guildhouses` SET `guildId` = %u WHERE `id` = %u",
 player->GetGuildId(), guildhouseId);


 player->ModifyMoney(-sConfigMgr->GetIntDefault("GuildHouse.BuyCost", false) * 10000);

 //player->DestroyItemCount(token, cost, true);
 _creature->Say(MSG_CONGRATULATIONS, LANG_UNIVERSAL, player);

}
示例#9
0
void sellGuildhouse(Player *pPlayer, Creature *_Creature)
{
	if (isPlayerHasGuildhouse(pPlayer, _Creature))
	{
		QueryResult *result;

		result = WorldDatabase.PQuery("UPDATE `guildhouses` SET `guildId` = 0 WHERE `guildId` = %u",
		pPlayer->GetGuildId());
		
		if (result)
			
		pPlayer->ModifyMoney(150000000);

		//display message e.g. "here your money etc."
		char msg[100];
		sprintf(msg, MSG_SOLD, COST_GH_SELL / 150000000);
		pPlayer->ModifyMoney(150000000);
		_Creature->MonsterYell(msg, pPlayer->GetObjectGuid());
	}
}
示例#10
0
void buyGuildhouse(Player *player, Creature *_creature, uint32 guildhouseId)
{
	if (player->GetMoney() < COST_GH_BUY)
	{
		//show how much money player need to buy GH (in gold)
		char msg[100];
		sprintf(msg, MSG_NOTENOUGHMONEY, COST_GH_BUY / 10000);
		_creature->MonsterWhisper(msg, player->GetGUID());
		return;
	}

	if (isPlayerHasGuildhouse(player, _creature, true))
	{
		//player already have GH
		return;
	}

	QueryResult *result;

	//check if somebody already occupied this GH
	result = SD2Database.PQuery("SELECT `id` FROM `guildhouses` WHERE `id` = %u AND `guildId` <> 0",
		guildhouseId);

	if (result)
	{
		delete result;
		_creature->MonsterWhisper(MSG_GHOCCUPIED, player->GetGUID());
		return;
	}

	//update DB
	result = SD2Database.PQuery("UPDATE `guildhouses` SET `guildId` = %u WHERE `id` = %u",
		player->GetGuildId(), guildhouseId);

	if (result)
		delete result;

	player->ModifyMoney(-COST_GH_BUY);
	_creature->MonsterSay(MSG_CONGRATULATIONS, LANG_UNIVERSAL, player->GetGUID());
	
}
示例#11
0
void buyGuildhouse(Player *pPlayer, Creature *_Creature, uint32 guildhouseId)
{
	if (pPlayer->GetMoney() < 250000000)
	{
		//show how much money pPlayer need to buy GH (in gold)
		char msg[100];
		sprintf(msg, MSG_NOTENOUGHMONEY, COST_GH_BUY / -250000000);
		pPlayer->ModifyMoney(-250000000);
		_Creature->MonsterYell(msg, pPlayer->GetObjectGuid());
		return;
	}

	if (isPlayerHasGuildhouse(pPlayer, _Creature, true))
	{
		//pPlayer already have GH
		return;
	}

	QueryResult *result;

	//check if somebody already occupied this GH
	result = WorldDatabase.PQuery("SELECT `id` FROM `guildhouses` WHERE `id` = %u AND `guildId` <> 0",
		guildhouseId);

	if (result)
	{
		pPlayer->GetSession()->SendNotification("Dieses Gildenhaus wird bereits verwendet.");
		return;
	}

	//update DB
	result = WorldDatabase.PQuery("UPDATE `guildhouses` SET `guildId` = %u WHERE `id` = %u",
		pPlayer->GetGuildId(), guildhouseId);
	pPlayer->ModifyMoney(-250000000);

	if (result)

	_Creature->MonsterSay("Du hast ein Gildenhaus erworben.", pPlayer->GetObjectGuid());

	
}
示例#12
0
void buyGuildhouse(Player *player, Creature* pCreature, uint32 guildhouseId)
{
	if (!player->HasEnoughMoney(GHBUY_COST))//(player->GetMoney() < GHBUY_COST)
	{
		//show how much money player need to buy GH (in gold)
		char msg[100];
		sprintf(msg, MSG_NOTENOUGHMONEY, GHBUY_COST / 10000);
		pCreature->MonsterWhisper(msg, player->GetGUID());
		return;
	}

	if (isPlayerHasGuildhouse(player, pCreature, true))
	{
		//player already have GH
		return;
	}

	QueryResult result;

	//check if somebody already occupied this GH
	result = WorldDatabase.PQuery("SELECT `id` FROM `guildhouses` WHERE `id` = %u AND `guildId` <> 0",
		guildhouseId);

	if (result)
	{
		pCreature->MonsterWhisper(MSG_GHOCCUPIED, player->GetGUID());
		return;
	}

	//update DB
	result = WorldDatabase.PQuery("UPDATE `guildhouses` SET `guildId` = %u WHERE `id` = %u",
		player->GetGuildId(), guildhouseId);

	if (result)
		
	player->ModifyMoney(-int32(GHBUY_COST));
	player->ModifyMoney(-(ConfigMgr::GetFloatDefault("pryds_guildhouseGoldCost",0)));
	pCreature->MonsterSay(MSG_CONGRATULATIONS, LANG_UNIVERSAL, player->GetGUID());
	
}
示例#13
0
 bool OnGossipHello(Player *player, Creature *_creature)
 {
 player->ADD_GOSSIP_ITEM(ICON_GOSSIP_BALOON, MSG_GOSSIP_TELE,
 GOSSIP_SENDER_MAIN, ACTION_TELE);

 if (isPlayerGuildLeader(player))
 {
 if (isPlayerHasGuildhouse(player, _creature))
 {
 player->ADD_GOSSIP_ITEM(0, "Sell Guild House", GOSSIP_SENDER_MAIN, ACTION_SELL_GUILDHOUSE_OPT);
 }
 else
 {
 //show additional menu for guild leader
 player->ADD_GOSSIP_ITEM(ICON_GOSSIP_GOLD, MSG_GOSSIP_BUY,
 GOSSIP_SENDER_MAIN, ACTION_SHOW_BUYLIST);
 }
 }

 player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID());
 return true;
 }
示例#14
0
 bool OnGossipHello(Player *player, Creature *_creature)
 {
 AddGossipItemFor(player, ICON_GOSSIP_BALOON, MSG_GOSSIP_TELE, GOSSIP_SENDER_MAIN, ACTION_TELE);

 if (isPlayerGuildLeader(player))
 {
 if (isPlayerHasGuildhouse(player, _creature))
 {
 //and additional for guildhouse owner (Removed :
 AddGossipItemFor(player, ICON_GOSSIP_GOLD, MSG_GOSSIP_SELL, GOSSIP_SENDER_MAIN, ACTION_SELL_GUILDHOUSE, MSG_SELL_CONFIRM, 0, false);

 }
 else
 {
 //show additional menu for guild leader
 AddGossipItemFor(player, ICON_GOSSIP_GOLD, MSG_GOSSIP_BUY, GOSSIP_SENDER_MAIN, ACTION_SHOW_BUYLIST);
 }
 }

 SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID());
 return true;
 }
示例#15
0
void buyGuildhouse(Player *player, Creature *_creature, uint32 guildhouseId)
{
    uint32 buyprice = (sConfig.GetIntDefault("GuildMasterNPC.BuyPriceInGold",500)*10000);
    if (player->GetMoney() < buyprice)
    {
        //show how much money player need to buy GH (in gold)
        char msg[100];
        sprintf(msg, MSG_NOTENOUGHMONEY, buyprice / 10000);
        _creature->MonsterWhisper(msg, player->GetGUID());
        return;
    }

    if (isPlayerHasGuildhouse(player, _creature, true))
    {
        //player already have GH
        return;
    }

    //check if somebody already occupied this GH
    QueryResult_AutoPtr result = CharacterDatabase.PQuery("SELECT `id` FROM `guild_houses` WHERE `id` = %u AND `guildId` <> 0",
        guildhouseId);

    if (result)
    {
        _creature->MonsterWhisper(MSG_GHOCCUPIED, player->GetGUID());
        return;
    }

    //update DB
    QueryResult_AutoPtr result_updt = CharacterDatabase.PQuery("UPDATE `guild_houses` SET `guildId` = %u WHERE `id` = %u",
        player->GetGuildId(), guildhouseId);
    
    player->ModifyMoney(-buyprice);
    _creature->MonsterSay(MSG_CONGRATULATIONS, LANG_UNIVERSAL, player->GetGUID());
    
}