Postado Março 4, 2021 4 anos Este é um post popular. Limite máximo de players em guild WEBSITE ? Bom, decidi postar essa modificação que fiz a muito tempo, pois vi que bastante gente queria Para Modern AAC e vi que ninguém soube ajudar. Como é algo bem simples e ta parado aqui faz tempo Decidi disponibilizar. Não só para Modern, mas para Gesior também! Estarei disponibilizando de duas maneiras: 1º Será um valor configurado no proprio config.php, onde determinará o limite máximo de todas as guild. 2º A verificação será feita por DB, onde terá um valor padrão para cada guilda criada, podendo ser alterado o valor de membros maximo. Ou seja, a guilda número UM pode ter máximo de 50 players, e a guilda número DOIS pode ter o máximo de 100. Vocês pode ser criativos e vender items que aumenta o limite ou fazer eventos/sorteios para aumentar... Enfim, vamos lá... Primeira maneira: Modern AAC: Spoiler Vai em \system\application\controllers e abra o guilds.php Procure por: public function join($guild_name, $player_name) { Em cima de: $ide = new IDE; Coloque: $ots = POT::getInstance(); $ots->connect(POT::DB_MYSQL, connection()); $SQL = $ots->getDBHandle(); Um pouco abaixo procure por: $guild->acceptInvite($player); $ide->redirect(WEBSITE."/index.php/guilds/view/".$guild->getId()."/1"); } } Substituem por: global $config; $guildMembersLimit = $SQL->query('SELECT COUNT(`gr`.`id`) AS `limit` FROM `players` AS `p` LEFT JOIN `guild_ranks` AS `gr` ON `gr`.`id` = `p`.`rank_id` WHERE `gr`.`guild_id` = '.$guild->getId())->fetch(); if($guildMembersLimit['limit'] >= $config['maxMembersToGuild']) { error("This guild has already reached the maximum number of members. (<b>".$config['maxMembersToGuild']."</b>)"); $this->db->query('DELETE FROM `guild_invites` WHERE `player_id` = '.$player->getId().' AND `guild_id` = '.$guild->getId()); $ide->redirect(WEBSITE."/index.php/guilds/view/".$guild->getId()."", 2); return false; } else { $guild->acceptInvite($player); $ide->redirect(WEBSITE."/index.php/guilds/view/".$guild->getId()."/1"); } } } Depois procure por: public function invite($id) { Em baixo add: $ots = POT::getInstance(); $ots->connect(POT::DB_MYSQL, connection()); $SQL = $ots->getDBHandle(); Um pouco abaixo procure por: $player_id = $this->guilds_model->getCharacterId($_POST['name']); $this->guilds_model->invite($id, $player_id[0]['id']); success($_POST['name']." has been invited to ".$data['guild'][0]['name']); $ide->redirect(WEBSITE."/index.php/guilds/management/".$id, 2); } } Substitui por: $player_id = $this->guilds_model->getCharacterId($_POST['name']); //Max. de membros na Guild by Yan Liima(Night) global $config; $guildMembersLimit = $SQL->query('SELECT COUNT(`gr`.`id`) AS `limit` FROM `players` AS `p` LEFT JOIN `guild_ranks` AS `gr` ON `gr`.`id` = `p`.`rank_id` WHERE `gr`.`guild_id` = '.$id)->fetch(); if($guildMembersLimit['limit'] >= $config['maxMembersToGuild']) error("This guild has already reached the maximum number of members. (<b>".$config['maxMembersToGuild']."</b>)"); else { $this->guilds_model->invite($id, $player_id[0]['id']); success($_POST['name']." has been invited to ".$data['guild'][0]['name']); $ide->redirect(WEBSITE."/index.php/guilds/management/".$id, 2); } } } E por fim adicione no seu config.php: /*Max. Members in the Guild*/ $config['maxMembersToGuild'] = 50; Gesior: Spoiler Em /pages/guilds.php procure: if($action == 'invite') Um pouco logo abaixo terá: if(!check_name($name)) $guild_errors[] = 'Invalid name format.'; Adicione em baixo: $guildMembers = $SQL->query('SELECT COUNT(`gr`.`id`) AS `limit` FROM `players` AS `p` LEFT JOIN `guild_ranks` AS `gr` ON `gr`.`id` = `p`.`rank_id` WHERE `gr`.`guild_id` = '.$guild->getId() )->fetch(); if($guildMembers['limit'] >= $config['site']['maxMembersToGuild']) $guild_errors[] = 'This guild has already reached the maximum number of members. (<b>".$config['site']['maxMembersToGuild']."</b>)'; Depois no mesmo arquivo terá: if($action == 'acceptinvite') Um pouco mais baixo tem: if(!check_name($name)) $guild_errors[] = 'Invalid name format.'; Adicione em baixo: $guildMembers = $SQL->query('SELECT COUNT(`gr`.`id`) AS `limit` FROM `players` AS `p` LEFT JOIN `guild_ranks` AS `gr` ON `gr`.`id` = `p`.`rank_id` WHERE `gr`.`guild_id` = '.$guild->getId() )->fetch(); if($guildMembers['limit'] >= $config['site']['maxMembersToGuild']) $guild_errors[] = 'This guild has already reached the maximum number of members. (<b>".$config['site']['maxMembersToGuild']."</b>)'; Depois no config.php add: $config['site']['maxMembersToGuild'] = 50; Segunda maneira: Modern AAC: Spoiler Execute essa Query na sua db Observação: Altere o número '50' para o valor padrão do limite máximo das guilds criadas: ALTER TABLE `guilds` ADD `max_members` VARCHAR( 255 ) NOT NULL DEFAULT '50'; Vai em \system\application\controllers e abra o guilds.php Procure por: public function join($guild_name, $player_name) { Em cima de: $ide = new IDE; Coloque: $ots = POT::getInstance(); $ots->connect(POT::DB_MYSQL, connection()); $SQL = $ots->getDBHandle(); Um pouco abaixo procure por: $guild->acceptInvite($player); $ide->redirect(WEBSITE."/index.php/guilds/view/".$guild->getId()."/1"); } } Substituem por: $guildMembersLimit = $SQL->query('SELECT COUNT(`gr`.`id`) AS `limit` FROM `players` AS `p` LEFT JOIN `guild_ranks` AS `gr` ON `gr`.`id` = `p`.`rank_id` WHERE `gr`.`guild_id` = '.$guild->getId())->fetch(); $limit = $SQL->query('SELECT `max_members` FROM `guilds` WHERE `id`='.$guild->getId())->fetch(); if($guildMembersLimit['limit'] >= $limit['max_members']) { error("This guild has already reached the maximum number of members. (<b>".$limit['max_members']."</b>)"); $this->db->query('DELETE FROM `guild_invites` WHERE `player_id` = '.$player->getId().' AND `guild_id` = '.$guild->getId()); $ide->redirect(WEBSITE."/index.php/guilds/view/".$guild->getId()."", 2); return false; } else { $guild->acceptInvite($player); $ide->redirect(WEBSITE."/index.php/guilds/view/".$guild->getId()."/1"); } } } Depois procure por: public function invite($id) { Em baixo add: $ots = POT::getInstance(); $ots->connect(POT::DB_MYSQL, connection()); $SQL = $ots->getDBHandle(); Um pouco abaixo procure por: $player_id = $this->guilds_model->getCharacterId($_POST['name']); $this->guilds_model->invite($id, $player_id[0]['id']); success($_POST['name']." has been invited to ".$data['guild'][0]['name']); $ide->redirect(WEBSITE."/index.php/guilds/management/".$id, 2); } } Substitui por: $player_id = $this->guilds_model->getCharacterId($_POST['name']); //Max. de membros na Guild by Yan Liima(Night) $guildMembersLimit = $SQL->query('SELECT COUNT(`gr`.`id`) AS `limit` FROM `players` AS `p` LEFT JOIN `guild_ranks` AS `gr` ON `gr`.`id` = `p`.`rank_id` WHERE `gr`.`guild_id` = '.$id)->fetch(); $limit = $SQL->query('SELECT `max_members` FROM `guilds` WHERE `id`='.$guild->getId())->fetch(); if($guildMembersLimit['limit'] >= $limit['max_members']) error("This guild has already reached the maximum number of members. (<b>".$limit['max_members']."</b>)"); else { $this->guilds_model->invite($id, $player_id[0]['id']); success($_POST['name']." has been invited to ".$data['guild'][0]['name']); $ide->redirect(WEBSITE."/index.php/guilds/management/".$id, 2); } } } Gesior: Spoiler Execute essa Query na sua db Observação: Altere o número '50' para o valor padrão do limite máximo das guilds criadas: ALTER TABLE `guilds` ADD `max_members` VARCHAR( 255 ) NOT NULL DEFAULT '50'; Em /pages/guilds.php procure: if($action == 'invite') Um pouco logo abaixo terá: if(!check_name($name)) $guild_errors[] = 'Invalid name format.'; Adicione em baixo: $guildMembers = $SQL->query('SELECT COUNT(`gr`.`id`) AS `limit` FROM `players` AS `p` LEFT JOIN `guild_ranks` AS `gr` ON `gr`.`id` = `p`.`rank_id` WHERE `gr`.`guild_id` = '.$guild->getId() )->fetch(); $limit = $SQL->query('SELECT `max_members` FROM `guilds` WHERE `id`='.$guild->getId())->fetch(); if($guildMembers['limit'] >= $limit['max_members']) $guild_errors[] = 'This guild has already reached the maximum number of members. (<b>".$limit['max_members']."</b>)'; Depois no mesmo arquivo terá: if($action == 'acceptinvite') Um pouco mais baixo tem: if(!check_name($name)) $guild_errors[] = 'Invalid name format.'; Adicione em baixo: $guildMembers = $SQL->query('SELECT COUNT(`gr`.`id`) AS `limit` FROM `players` AS `p` LEFT JOIN `guild_ranks` AS `gr` ON `gr`.`id` = `p`.`rank_id` WHERE `gr`.`guild_id` = '.$guild->getId() )->fetch(); $limit = $SQL->query('SELECT `max_members` FROM `guilds` WHERE `id`='.$guild->getId())->fetch(); if($guildMembers['limit'] >= $limit['max_members']) $guild_errors[] = 'This guild has already reached the maximum number of members. (<b>".$limit['max_members']."</b>)'; Prontinho galera!!! Caso queiram para cmd in-game: LINK Editado Março 4, 2021 4 anos por Yan Liima (veja o histórico de edições) ╔══════════════════════════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ══════════════════════════╗ Te Ajudei? Rep + e ficamos Quits Precisando de ajuda? Discord: Yan Liima #3702 Programador Júnior de LUA, PHP e JavaScript Juntos somos lendas, separados somos Mitos! ╚══════════════════════════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═════════════════════════════╝
Postado Março 4, 2021 4 anos @Yan Liima ai sem palavras Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas. discord.gg/phJZeHa2k4 Projeto ATS (Naruto) Informações Abaixo Facebook Youtube Discord Tutoriais / Conteúdos Clique Aqui
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.