Pastebin

New pastes are no longer accepted · Stats

Latest Pastes

Exile's Map Storm

void Map::Storm()
{
	PacketBuilder reply;
	int Strikes, Strike_X, Strike_Y, Strike_Type;
	Strikes = util::rand(1, this->width / 2); //Amount of locations to strike with thunder
	for(int i = 0; i < Strikes; i++)
	{
		Strike_X = util::rand(0, this->width);
		Strike_Y = util::rand(0, this->height);
		Strike_Type = util::rand(0, 1);

		//Ensure its not triggering thunder on non-blank tiles
		while (this->GetSpec(Strike_X, Strike_Y) != Map_Tile::None) {
			Strike_X = util::rand(0, this->width);
			Strike_Y = util::rand(0, this->height);
		}

		UTIL_PTR_LIST_FOREACH(this->characters, Character, character)
		{
			if (character->InRange(Strike_X, Strike_Y))
			{
				reply.SetID(PACKET_EFFECT, PACKET_AGREE);
				reply.AddChar(Strike_X);
				reply.AddChar(Strike_Y);

				if (Strike_Type == 0) {
					character->map->Effect(MAP_EFFECT_QUAKE, 1);
					reply.AddShort(10);
				} else {
					character->map->Effect(MAP_EFFECT_QUAKE, 3);
					reply.AddShort(17);
				}

				character->player->client->SendBuilder(reply);
			}
		}
	}
}