Postado Novembro 2, 2016 8 anos 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
Postado Novembro 2, 2016 8 anos @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 Novembro 2, 2016 8 anos 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 Novembro 2, 2016 8 anos @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 Novembro 2, 2016 8 anos 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 Novembro 2, 2016 8 anos 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.