-
-
-
-
-
-
Skill em Stages para TFS 1.3
@beloria, coloque esta tabela
-
Skill em Stages para TFS 1.3
@Beloria, me manda todo script denovo. Preciso ver as linhas do erro.
-
Lost Account
Esquece, provavelmente não há a ser configurado. Estou olhando alguns post na internet... e parece que o seu linux está simplesmente bloqueando o seu acesso ao SMPTS da BOL. É uma pratica de segurança(configuração padrão em alguns VPS). Acho que você vai ter que usar um comando que adiciona um regra na tabela iptables que te permite conectar em IPs através da porta 587 Tente o seguinte comando: Ou então este: Boa sorte.
-
Tfs 0.4
É normal pesar bastante... principalmente se for mapa Global. Se não estou enganado a cada 100MB de mapa é necessário 3 ~ 4GB de RAM. Recomendo instalar o Windows 10, ele é muito mais rápido do que o Windows 7(se não estou enganado o suporte para ele já foi finalizado). Com o windows 10 e esses 16GB de RAM, da até pra você usar a ferramenta de virtualização de maquiná do próprio windows(Hyper-V), sem a necessidade de instalar VirtualBox, VMWare. Dica: utilize linux. É mais difícil de aprender e fazer manutenção mas é o mais leve para a memória RAM.
-
Client 11 carrega lista de personagens mas não entra no jogo
Sim. config.php ?PHP // ----Config Shop---- $outfits_list = array(); $loyalty_title = array(50 => 'Scout', 100 => 'Sentinel', 200 => 'Steward', 400 => 'Warden', 1000 => 'Squire', 2000 => 'Warrior', 3000 => 'Keeper', 4000 => 'Guardian', 5000 => 'Sage'); $config['shop']['newitemdays'] = 1; #days to item be new in shop # Pagseguro configs $config['pagseguro']['testing'] = false; $config['pagseguro']['tokentest'] = ""; $config['pagseguro']['email'] = ''; $config['pagseguro']['apitoken'] = ''; # Bank transfer data $config['banktransfer']['bank'] = "Caixa Econômica"; $config['banktransfer']['agency'] = ""; $config['banktransfer']['account'] = ""; $config['banktransfer']['name'] = ""; $config['banktransfer']['operation'] = 003; // 0 = no operation # PayPal configs $config['paypal']['email'] = ""; # Social Networks $config['social']['status'] = true; $config['social']['facebook'] = "https://www.facebook.com/tibia"; # PAGE: characters.php $config['site']['quests'] = array( "Demon Helmet" => 2213, "In Service of Yalahar" => 12279, "Pits Of Inferno" => 10544, "The Ancient Tombs" => 50220, "The Annihilator" => 2215, "The Demon Oak" => 1010, "Wrath Of The Emperor" => 12374); # time in days to show the former names $config['site']['formerNames'] = 10; $config['site']['formerNames_amount'] = 10; # Account Maker Config $config['site']['serverPath'] = "C:/Users/Franco/Desktop/ot/ombra-pack10x-master/"; $config['site']['useServerConfigCache'] = false; $towns_list = array( 1 => 'Venore', 2 => 'Thais', 3 => 'Kazordoon', 4 => 'Carlin', 5 => 'Ab\'Dendriel', 6 => 'Rookgaard', 7 => 'Liberty Bay', 8 => 'Port Hope', 9 => 'Ankrahmun', 10 => 'Darashia', 11 => 'Edron', 12 => 'Svargrond', 13 => 'Yalahar', 14 => 'Farmine', 28 => 'Gray Beach', 29 => 'Roshamuul', 33 => 'Rathleton', 34 => 'Krailos', 51 => 'Dawnport', 52 => 'Feyrist', ); # this is important if you want to use ajax check in your create account $config['site']['sqlHost'] = "localhost"; $config['site']['sqlUser'] = "root"; $config['site']['sqlPass'] = "YOUR DATABASE PASSWORD HERE"; $config['site']['sqlBD'] = "YOUR DATABASE NAME"; # Create Account Options $config['site']['one_email'] = true; $config['site']['create_account_verify_mail'] = true; $config['site']['verify_code'] = true; $config['site']['email_days_to_change'] = 7; $config['site']['newaccount_premdays'] = 0; $config['site']['send_register_email'] = true; # Create Character Options $config['site']['newchar_vocations'] = array(0 => 'Rook Sample'); // if you wan't use rook, put (1 => 'Sorcerer Sample', 2 => 'Druid Sample', 3 => 'Paladin Sample', 4 => 'Knight Sample'); $config['site']['newchar_towns'] = array(6, 51); $config['site']['max_players_per_account'] = 10; # Emails Config $config['site']['send_emails'] = true; $config['site']['mail_address'] = ""; $config['site']['mail_senderName'] = ""; $config['site']['smtp_enabled'] = true; $config['site']['smtp_host'] = "ssl://smtp.gmail.com"; $config['site']['smtp_port'] = 465; $config['site']['smtp_auth'] = true; $config['site']['smtp_user'] = ""; $config['site']['smtp_pass'] = ""; $config['site']['smtp_secure'] = true; # PAGE: accountmanagement.php $config['site']['send_mail_when_change_password'] = true; $config['site']['send_mail_when_generate_reckey'] = true; $config['site']['email_time_change'] = 7; $config['site']['daystodelete'] = 7; $config['site']['flash_client_enabled'] = false; # PAGE: guilds.php $config['site']['guild_need_level'] = 8; $config['site']['guild_need_pacc'] = false; $config['site']['guild_image_size_kb'] = 50; $config['site']['guild_description_chars_limit'] = 2000; $config['site']['guild_description_lines_limit'] = 6; $config['site']['guild_motd_chars_limit'] = 250; # PAGE: adminpanel.php $config['site']['access_admin_panel'] = 3; # PAGE: latestnews.php $config['site']['news_limit'] = 6; # PAGE: killstatistics.php $config['site']['last_deaths_limit'] = 40; # PAGE: team.php $config['site']['groups_support'] = array(2, 3, 4, 5, 6); # PAGE: highscores.php $config['site']['groups_hidden'] = array(3, 4, 5, 6); $config['site']['accounts_hidden'] = array(1); # PAGE: lostaccount.php $config['site']['email_lai_sec_interval'] = 180; # Pagseguro offers // ValorR$ => Qtd_coins $config['pagseguro']['offers'] = array( 500=>75, 800=>125, 1500=>250, 2800=>500, 4900=>1000 ); // Nome do produto $config['pagseguro']['produtoNome'] = 'Tibia Coins'; $config['pagseguro']['urlRedirect'] = 'https://127.0.0.1/'; $config['pagseguro']['urlNotification'] = 'https://127.0.0.1/retpagseguro.php'; # Layout Config $config['site']['layout'] = 'tibiarl'; $config['site']['vdarkborder'] = '#505050'; $config['site']['darkborder'] = '#D4C0A1'; $config['site']['lightborder'] = '#F1E0C6'; $config['site']['download_page'] = false; $config['site']['serverinfo_page'] = true; // ServerConfig $config['server']['serverName'] = "Nome do Seu Servidor"; $config['server']['ip'] = ""; //coloque o IP que você configurou no cliente Acho que tem q alterar essa linha também, e colocar o diretório do seu OTServer: $config['site']['serverPath'] = "C:/Users/Franco/Desktop/ot/ombra-pack10x-master/"; ----------------- login.php <?php /** * Created by Notepad++. * User: Malucooo - Erick Nunes * Remaked of login.php by JLCVP and parts of login.php by Monteiro. Thanks for both! * Date: 18/09/17 * Time: 03:01 */ require 'config/config.php'; // comment to show E_NOTICE [undefinied variable etc.], comment if you want make script and see all errors error_reporting(E_ALL ^ E_STRICT ^ E_NOTICE); // true = show sent queries and SQL queries status/status code/error message define('DEBUG_DATABASE', false); define('INITIALIZED', true); if (!defined('ONLY_PAGE')) define('ONLY_PAGE', true); // check if site is disabled/requires installation include_once('./system/load.loadCheck.php'); // fix user data, load config, enable class auto loader include_once('./system/load.init.php'); // DATABASE include_once('./system/load.database.php'); if (DEBUG_DATABASE) Website::getDBHandle()->setPrintQueries(true); // DATABASE END /*error example: { "errorCode":3, "errorMessage":"Account name or password is not correct." }*/ # Declare variables with array structure $characters = array(); $playerData = array(); $data = array(); $isCasting = false; # error function function sendError($msg){ $ret = array(); $ret["errorCode"] = 3; $ret["errorMessage"] = $msg; die(json_encode($ret)); } # getting infos $request = file_get_contents('php://input'); $result = json_decode($request, true); # account infos $accountName = $result["accountname"]; $password = $result["password"]; # game port $port = 7172; # check if player wanna see cast list if (strtolower($accountName) == "cast") $isCasting = true; if ($isCasting) { $casts = $SQL->query("SELECT `player_id` FROM `live_casts`")->fetchAll(); if (count($casts[0]) == 0) sendError("There is no live casts right now!"); foreach($casts as $cast) { $character = new Player(); $character->load($cast['player_id']); if ($character->isLoaded()) { $char = array("worldid" => 0, "name" => $character->getName(), "ismale" => (($character->getSex() == 1) ? true : false), "tutorial" => false); $characters[] = $char; } } $port = 7173; $lastLogin = 0; $premiumAccount = true; $timePremium = 0; } else { $account = new Account(); $account->find($accountName); if (!$account->isLoaded()) sendError("Failed to get account. Try again!"); if ($account->getPassword() != Website::encryptPassword($password)) sendError("The password for this account is wrong. Try again!"); foreach($account->getPlayersList() as $character) { $char = array("worldid" => 0, "name" => $character->getName(), "ismale" => (($character->getSex() == 1) ? true : false), "tutorial" => false); $characters[] = $char; } $lastLogin = $account->getLastLogin(); $premiumAccount = ($account->isPremium()) ? true : false; $timePremium = time() + ($account->getPremDays() * 86400); } $session = array( "fpstracking" => false, "isreturner" => true, "returnernotification" => false, "showrewardnews" => false, "sessionkey" => $accountName . "\n" . $password, "lastlogintime" => $lastLogin, "ispremium" => $premiumAccount, "premiumuntil" => $timePremium, "status" => "active" ); $world = array( "id" => 0, "name" => $config['server']['serverName'], "externaladdress" => $config['server']['ip'], "externalport" => $port, "previewstate" => 0, "location" => "BRA", "anticheatprotection" => false ); $worlds = array($world); $data["session"] = $session; $playerData["worlds"] = $worlds; $playerData["characters"] = $characters; $data["playdata"] = $playerData; $data["survey"] = $survey; echo json_encode($data);
- Melhor Versão de OT em 2018
-
Lost Account
O seu provedor pode estar bloqueando a conexão, pois você está acessando com um endereço de IP diferente do seu PC na sua casa. Olhe como está configurado esse email. Veja se possui algum tipo de configuração que habilite o acesso a esse email. Muitos sites fazem isso... eles sabem que seu IP é geralmente do provedor X(vivo, claro.. etc) ai quando você se conecta com um provedor totalmente diferente, eles te bloqueiam por segurança. Isso acontece muito por ai. A gmail ou facebook por exemplo te informa: tentativa de acesso, ip tal, hora tal e simplesmente não liberam o login a menos que você confirme aquele acesso.
-
Client 11 carrega lista de personagens mas não entra no jogo
Não, segue o exemplo do @francosilverio1 no post superior a este. É no arquivo config.php, e não login.php.
-
Melhor Versão de OT em 2018
Sim... mas isso é meio relativo não é mesmo? Que tipo de servidor você gostaria de ter? Apenas for fun e zuera? Ou um servidor mais sério onde os jogadores tem q ralar para conseguirem as coisas? Vou tentar colocar de outra forma dando exemplos: MMORPG = Tibia global ou otserver full global sem bot nenhum. MMOFUN = otserv global/baiak mais focado na diversão: evento, pvp, fastattack, fastup Eu particularmente... gosto do MMORPG. Gosto de me dedicar e ser o melhor através da minha habilidade e não porque o MageBot cura melhor do que eu...
-
Melhor Versão de OT em 2018
Amigo, eu já fiz o que lhe disse(apenas testes)... e o pessoal geralmente faz isso mas não para usar bot no seu servidor, e sim roubar suas sprites customizadas e vender depois. "Usar bot?" Não, ganhar dinheiro... imagine um otserv que nem o GLOBALWAR, vamos supor que lá não é permitido usar bot. Ai eu vou la e consigo fazer isso que acabei de dizer, e começo a vender o que eu fiz: "Quer usar bot? Eu tenho um cliente aqui que funciona com bot, cobro 10 reais." em um servidor de 1400 online... se 100 pessoas me pagarem 10 reais cada, mil reais no meu bolso fácil, fácil. A própria Cipsoft sofreu por anos por causa de bot e a Cip é gigante... eles tem desenvolvedores de muitas áreas diferentes trabalhando no Tibia, dinheiro pra gastar com desenvolvimento e tecnologia.... acha mesmo que uma criptografia doméstica inventada por mim ou por você, vai segurar os botteiros? Não segura mesmo. Argumentos da minha opinião: 1 - A Cipsoft se ferrou de todas as formas com os bots, eles sofreram por anos(o que é fato). Não vai ser uma criptografia qualquer que vai resolver isso 2 - Bot acaba com o RPG do server, e o que não falta é bot para a versão 8.6. Não é atoa que existem menos bots para versões 10.
-
Client 11 carrega lista de personagens mas não entra no jogo
Eu acho estranho esse código... pq ele tenta acessar duas propiedades do config.php: "name" => $config['server']['serverName'] "externaladdress" => $config['server']['ip'] Nenhuma dessas duas propiedades está definida no arquivo config.php, tente adicionar essas duas linhas no seu arquivo config/config.php: $config['server']['serverName'] = "Nome do Seu Servidor"; $config['server']['ip'] = "127.0.0.1";
-
Client 11 carrega lista de personagens mas não entra no jogo
No seu caso, está faltando configurar essas linhas. Elas são responsáveis por definir: $config['site']['sqlHost'] >> host onde se localiza o seu banco de dados MYSQL $config['site']['sqlUser'] >> usuario que irá se conectar no seu MySQL $config['site']['sqlPass'] >> senha do usuário que irá se conectar no mysql $config['site']['sqlBD'] >> nome do banco de dados que você irá se conectar Dica: nunca deixem o usuário root sem senha, e nunca usem ele no seu Banco de Dados. O usuário root tem muitas permissões que vão além do necessário para um OTServer. Criem um usuário exclusivo para operar no banco de dados do OTServer.
-
Skill em Stages para TFS 1.3
@Beloria, em primeiro lugar, apesar de ser programador eu não programo LUA ou seja posso estar errado em absolutamente tudo o que eu lhe falar. Vamos por partes, ok? Reconhecendo o erro: player.lua:1047: attempt to compare number with nil Significa que na linha 1047(arquivo player.lua), ele tentou comparar um número com um valor nulo(nil), segue a linha: if skillLevel >= level[1] and skillLevel <= level[2] then Qual número ele comparou? skillLevel Com o que ele comparou esse número? level[1] e level[2] Provavelmente level[1] ou level[2] estão nulos. ---------- Analisando o código: local function getSkillRate(player, skillId) local targetVocation = config[player:getVocation():getBase():getId()] if targetVocation then local targetSkillStage = targetVocation[skillId] if targetSkillStage then local skillLevel = player:getSkillLevel(skillId) for level, rate in pairs(targetSkillStage) do if skillLevel >= level[1] and skillLevel <= level[2] then return rate end end end end return skillId == SKILL_MAGLEVEL and configManager.getNumber(configKeys.RATE_MAGIC) or configManager.getNumber(configKeys.RATE_SKILL) end skillLevel = propiedades do player { player:getSkillLevel(skillId) } level = chave do par { pairs(targetSkillStage) } rate = valor da chave Na linha: for level, rate in pairs(targetSkillRate) do { O algoritmo está passando (em pares) por uma tabela pré definda(local config) na linha 986: local config = { -- base vocationId [1] = { -- skillId [SKILL_FIST] = { -- [{skillLevel}] = skillRate [{10, 19}] = 10, [{20, 29}] = 5 }, [SKILL_CLUB] = { [{10, 19}] = 10, [{20, 29}] = 5 }, [SKILL_SWORD] = { [{10, 19}] = 10, [{20, 29}] = 5 }, [SKILL_AXE] = { [{10, 19}] = 10, [{20, 29}] = 5 }, [SKILL_DISTANCE] = { [{10, 19}] = 10, [{20, 29}] = 5 }, [SKILL_SHIELD] = { [{10, 19}] = 10, [{20, 29}] = 5 }, [SKILL_FISHING] = { [{10, 19}] = 10, [{20, 29}] = 5 }, [SKILL_MAGLEVEL] = { [{10, 19}] = 10, [{20, 29}] = 5 } } } ao tentar acessar um valor da chave level na posição 1 e 2, ou seja level[1] e level[2], supostamente ele deveria retornar 10 e 19 respectivamente. Nosso erro está exatamente aqui. e finalmente baseando se nesses dois valores a função retorna a rate pré definida(linha 986). } Minha opinião: acredito que o erro seja a maneira como o código está programado para retornar os valores da tabela config(linha 986). Até onde eu sei for loops usando pairs em lua é mais ou menos assim: Minha possível solução(não testei) { Acredito que cada skill definida na tabela deveria ter sido escrita da seguinte maneira: [SKILL_MAGLEVEL] = { [1] = { "fromLevel" = 10, "toLevel" = 19, "rate" = 10 }, [2] = { "fromLevel" = 20, "toLevel" = 29, "rate" = 5 } } E a código da função getSkillRate: local function getSkillRate(player, skillId) local targetVocation = config[player:getVocation():getBase():getId()] if targetVocation then local targetSkillStage = targetVocation[skillId] if targetSkillStage then local skillLevel = player:getSkillLevel(skillId) for index,level in pairs(targetSkillStage) do if skillLevel >= level["fromLevel"] and skillLevel <= level["toLevel"] then return level["rate"] end end end end return skillId == SKILL_MAGLEVEL and configManager.getNumber(configKeys.RATE_MAGIC) or configManager.getNumber(configKeys.RATE_SKILL) end Note a diferença entre os códigos. Eu particularmente gosto de definir todas as coisas usando strings( "fromLevel" = 10 ).... acho mais fácil de programar, mais óbvio, mais simples de entender(no caso de divulgação do código). Talvez dessa forma funcione corretamente, eu não posso lhe garantir nada pois não testei meu código. Do pouco que sei de LUA e uma pesquisa breve de uma hora, esta é a minha opinião sobre o seu problema. Espero ter ajudado de alguma forma. Recomendo estudar um pouco mais de LUA. } Boa sorte amigo.
-
francosilverio1 reagiu a uma resposta no tópico: Client 11 carrega lista de personagens mas não entra no jogo
-
[AJUDA] REMOVER CODIGOS MODERN ACC
Sinto muito amigo, pra mim tudo isso é enrolação. Já existem códigos prontos que retornam as senhas para o email cadastrado... e agora vai minha pergunta para você. Se o cara foi hackeado, você acha que ele vai querer a senha que foi hackeada? Ou você acha que ele vai querer que você redefina essa senha para ele e envie uma nova? Ou até mesmo um link enviado por email para ele mesmo escolher uma senha nova? Não tem nexo o que você esta dizendo, nem o seu propósito(uma vez que as funções que vc descreveu já existem). Repito, pra mim é enrolação sua... baboseira, ainda mais vindo de um usuário que se registrou a 2 meses atras. Não irei responder novamente esse tópico e vou procurar algum ADM ou moderador.
-
[AJUDA] REMOVER CODIGOS MODERN ACC
Isso é a criptografia da senha dos seus players. As senhas não são autenticadas em plain text: "senha123" e sim em hashes(o que você chama de códigos). Exemplo: NÃO RECOMENDO você tirar a criptografia... por dois motivos: 1 - segurança dos seus jogadores. Se alguém hackear seu servidor, as contas estão protegidas devido a criptografia das senhas. 2 - privacidade. Você não tem o direito de saber quais são as senhas do seus jogadores. A senha é pra tornar a conta privada, e a criptografia é para tornar a senha privada, garantindo privacidade total e segurança para seus players. Eu não gostaria que o ADM soubesse qual é a minha senha... o que você quer é antiético(pra alguns), por isso: NÃO VOU LHE FALAR COMO FAZER. Sinto muito, boa sorte.

faelzn69
Membro
-
Registro em