Ir para conteúdo

Featured Replies

Postado
  • Autor

eu tenho um action que checa quantos players tem na guild, se quiser ta aqui:

 

Citar

 

function onUse(cid, item, position)

local players,str,GuildName = {},'',getPlayerGuildName(cid)

if getPlayerGuildId(cid) <= 0  then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Você precisa estar em uma Guild.") return true end

                for _, cid in pairs(getPlayersOnline()) do

                                if getPlayerGuildName(cid) == GuildName then

                                                table.insert(players, cid)

                                end

                end

                str = str .. "Membros total da guild: "..CountGuildMembers(GuildName).." Players.\n\nExiste "..#players.." Players online na sua guild:\n\n"

                for i = 1, #players do

                str = str.."\n["..getPlayerName(players).."]["..getPlayerGuildRank(players).."]"

                end

return doShowTextDialog(cid, 2533, str)

end

 

 

  • Respostas 31
  • Visualizações 1.9k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Até dá. Porém não consigo pensar em como estruturar isso. Vou tentar pensar em algo, e posto aqui.     @EDIT: O máximo que eu consegui pensar agora foi o seguinte:   1) O

Postado

@login12 consegui editar essa função da source ? pra aceitar uma determinada quantidade de players ?

 

bool IOGuild::joinGuild(Player* player, uint32_t guildId, bool creation/* = false*/)
{
	Database* db = Database::getInstance();
	DBResult* result;

	DBQuery query;
	query << "SELECT `id` FROM `guild_ranks` WHERE `guild_id` = " << guildId << " AND `level` = " << (creation ? "3" : "1") << " LIMIT 1";
	if(!(result = db->storeQuery(query.str())))
		return false;

	const uint32_t rankId = result->getDataInt("id");
	result->free();

	std::string guildName;
	if(!creation)
	{
		query.str("");
		query << "SELECT `name` FROM `guilds` WHERE `id` = " << guildId << " LIMIT 1";
		if(!(result = db->storeQuery(query.str())))
			return false;

		guildName = result->getDataString("name");
		result->free();
	}

	query.str("");
	query << "UPDATE `players` SET `rank_id` = " << rankId << " WHERE `id` = " << player->getGUID() << db->getUpdateLimiter();
	if(!db->query(query.str()))
		return false;

	player->setGuildId(guildId);
	GuildLevel_t level = GUILDLEVEL_MEMBER;
	if(!creation)
		player->setGuildName(guildName);
	else
		level = GUILDLEVEL_LEADER;

	player->setGuildLevel(level, rankId);
	player->invitedToGuildsList.clear();
	return true;
}

 

Postado
1 minuto atrás, poko360 disse:

eu tenho um action que checa quantos players tem na guild, se quiser ta aqui:

 

 

 

Esse script checa apenas quantos jogadores ONLINE da guild.

Se quiser posso tentar fazer algo parecido. Mas isso só vai checar o momento que o jogador estiver online/offline.

Se um jogador deslogar pra outro entrar já irá contar... E se ele voltar a logar, ninguém mas vai conseguir entrar

3 minutos atrás, chbuss disse:

@login12 consegui editar essa função da source ? pra aceitar uma determinada quantidade de players ?

 


bool IOGuild::joinGuild(Player* player, uint32_t guildId, bool creation/* = false*/)
{
	Database* db = Database::getInstance();
	DBResult* result;

	DBQuery query;
	query << "SELECT `id` FROM `guild_ranks` WHERE `guild_id` = " << guildId << " AND `level` = " << (creation ? "3" : "1") << " LIMIT 1";
	if(!(result = db->storeQuery(query.str())))
		return false;

	const uint32_t rankId = result->getDataInt("id");
	result->free();

	std::string guildName;
	if(!creation)
	{
		query.str("");
		query << "SELECT `name` FROM `guilds` WHERE `id` = " << guildId << " LIMIT 1";
		if(!(result = db->storeQuery(query.str())))
			return false;

		guildName = result->getDataString("name");
		result->free();
	}

	query.str("");
	query << "UPDATE `players` SET `rank_id` = " << rankId << " WHERE `id` = " << player->getGUID() << db->getUpdateLimiter();
	if(!db->query(query.str()))
		return false;

	player->setGuildId(guildId);
	GuildLevel_t level = GUILDLEVEL_MEMBER;
	if(!creation)
		player->setGuildName(guildName);
	else
		level = GUILDLEVEL_LEADER;

	player->setGuildLevel(level, rankId);
	player->invitedToGuildsList.clear();
	return true;
}

 

 

Esse é o script de entrar depois de ser invitado, não? 

Me manda o de invite, posso tentar

 

@This life is filled with hurt

When happiness doesn't work

Trust me and take my hand

When the lights go out you will understand

Postado

 

@login12 Mandei o errado kk, mas acredito que seja esse.

 

bool IOGuild::invitePlayer(uint32_t guild, uint32_t guid)
{
	Database* db = Database::getInstance();
	DBQuery query;
	query << "INSERT INTO `guild_invites` (`player_id`, `guild_id`) VALUES ('" << guid << "', '" << guild << "')";
	return db->query(query.str());
}

 

Postado
3 minutos atrás, chbuss disse:

 

@login12 Mandei o errado kk, mas acredito que seja esse.

 


bool IOGuild::invitePlayer(uint32_t guild, uint32_t guid)
{
	Database* db = Database::getInstance();
	DBQuery query;
	query << "INSERT INTO `guild_invites` (`player_id`, `guild_id`) VALUES ('" << guid << "', '" << guild << "')";
	return db->query(query.str());
}

 

Posta o arquivo completo .cpp e o .h.

 

IOGUILD.cpp e .h e o luascript.cpp

Editado por login12 (veja o histórico de edições)

 

@This life is filled with hurt

When happiness doesn't work

Trust me and take my hand

When the lights go out you will understand

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 520.1k

Informação Importante

Confirmação de Termo