All pastes #719344 Raw Edit

Untitled

public text v1 · immutable
#719344 ·published 2007-09-29 06:03 UTC
rendered paste body
    case 2:                                    /*Guild House 1*/
				{
				QueryResult *result = NULL; // Just defining our result as a member of QueryResult
				result = CharacterDatabase.Query("SELECT taken FROM guildhouses WHERE id='1'"); // Runs the query to select the field
				uint32 taken = result->Fetch()->GetUInt32(); // Determines whether the field returns 1 (taken) or 0 (free)
				if(taken==1) // If guild house is taken...
				{
				Plr->BroadcastMessage("The house you selected is already taken!"); // Tell the person that selected house is taken
				return;
                                }
				else if(taken==0)
                                {
				}
		                uint32 price=10000000;//
		                uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
                                if (currentgold>=price){
		                int32 newgold = currentgold - price; 
		                Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
		                Plr->SafeTeleport(451,0,15637.739258,-16175.264648,44.936722,6.273752);
				char msg[1024];
				snprintf((char*)msg, 1024, "%s %s", static_cast<Player*>(Plr)->GetName(), "has chosen Guild House 1!");
				sWorld.SendWorldText(msg);
				sWorld.SendWorldWideScreenText(msg);				
				Plr->BroadcastMessage("You have selected Guild House 1 and recieved the key!"); // Tell the person they selected house
				CharacterDatabase.Execute("UPDATE guildhouses SET taken='1' WHERE id='1'"); // Update the DB so taken=1, no one else can pick the house
                                        // Send to all players of the same guild
		// NOTE: plr is the guild leader OR replace plr->GetGuildId() with the specific ID of the guild
		Player * thisPlr;
        objmgr._playerslock.AcquireReadLock();
        HM_NAMESPACE::hash_map<uint32, Player*>::const_iterator itr;

        for (itr = objmgr._players.begin(); itr != objmgr._players.end(); itr++)
        {
            thisPlr = itr->second;
				if( thisPlr->GetGuildId() == plr->GetGuildId() )
				{
				// Same Faction
				Item * item = objmgr.CreateItem( 99999 , thisPlr );
				thisPlr->GetItemInterface()->AddItemToFreeSlot( item );
				}
        }
        objmgr._playerslock.ReleaseReadLock();
				}
			}
			break;