Ir para conteúdo

Yan Liima

Diretor
  • Total de itens

    816
  • Registro em

  • Última visita

  • Dias Ganhos

    23

Posts postados por Yan Liima

  1. Parabéns, seu tópico de conteúdo foi aprovado! Nós do xTibia agradecemos pela sua contribuição.
    Com certeza seu conteúdo ajudará muitos da comunidade!

     

    Um servidor bem conhecido, imagino o quanto foi dificil para você decidir liberar ele. De qualquer forma parabéns pelo conteúdo meu amigo Abreu, tmj!

    Se possivel, formate o tópico adicionando prints do sv.

  2. Em 07/05/2021 em 23:51, Enenra disse:

    Poderia fazer uma com limite de hp/mp, skills, damage e heal aumentados ? atualmente é _16

    A comunidade de high exp é muito carente disso.

     

    Todos problemas de código na src e problemas de Linux foram concertados conforme teste e report. Já fiz a versão final e encerrei com as modificações. Qualquer modificações a mais não serão mais inclusas na source. Para isso terá que criar um tópico de acordo com oque quer ou de acordo com o problema.

  3. 11 minutos atrás, BlWalker disse:

    Boa tarde, parabéns pela distro!

     

    Passei a utilizar ela em um projeto porem as talkactions tem hora que para de funcionar, oq poderia ser ?

     

    Valeeu!

     

    Se tu digitar outra talk muito rápido ela não ira pegar mesmo. Talkactions tem um delay de 500 milissegundos(metade de 1segundo), introduzi isso como meio de proteção. Pois na TFS 0.4 padrão se tu utilizar BOT e colocar as talkactions para executar rapido uma atrás da outra, o servidor irá causar muito lag, podendo até travar. Você pode alterar no config.lua: timeBetweenCustomActions. Finalizei as modificações nessas source à 15dias atrás. Então caso não tenha a versão mais atualizada, por favor verifique as mudanças no github. Obrigado ?


  4.  Limite máximo de players em guild WEBSITE ?

    barrayan01.png

    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:

    Será um valor configurado no proprio config.php, onde determinará o limite máximo de todas as guild.

    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...

    barrayan02.png

    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 `total` 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['total'] >= $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 `total` 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['total'] >= $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`='.$id)->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`='.$id)->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

  5. 2 horas atrás, Lux Fero disse:

    Não tem nemhum erro no tfs é so acontece com distance effect o resto ta perfeito, a src eu compilei e aumentei os distance pra unit16

     

    Sobre o terminal me refiro o terminal do Otclient mesmo(CTRL + T). Provavelmente lá gera algum erro. Bom, como você alterou para uint16 tente adicionar no final do arquivo otclientrc.lua isto:

    -- g_game.enableFeature(16)
    connect(g_game, { onGameStart = function () g_game.enableFeature(GameExtendedClientPing) end })
    connect(g_game, { onGameStart = function () g_game.enableFeature(16) end })

     

    Ou verifique seu .spr e dat e tente utilizar estendido ou não estendido.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...