
-
Rogex Joyz reagiu a uma resposta no tópico: [PEDIDO] Gesior & TFS 1.0 -> Top 5 Level no canto superior direito do site
-
Rogex Joyz reagiu a uma resposta no tópico: (Resolvido)[PEDIDO] Most Powerfull Guilds nas latest news
-
VitorNM alterou sua foto pessoal
-
-
Pedido login.php compativel 12.20 com o gesior
Então, após essa alteração, a conta é localizada e autenticada corretamente, mas quando entra em qualquer character, o cliente crasha... Tem ideia do quê pode ser?
-
Pedido login.php compativel 12.20 com o gesior
Também estou tentando utilizar o cliente 12.30 mas recebo o mesmo erro. Alguém possui o login.php ou sabe como é que faz para utilizar o novo protocolo?
-
-
-
Prey system
Qual a versão do TFS e qual a versão do tibia você está rodando? Se tiver algum link de referência de qual ot você baixou como base também seria interessante, para eu entender direito o que está rolando --EDIT Esquece quanto a versão do TFS e do tibia, não reparei no post original, mas você ja informou isso
-
Prey system
Me manda seu init.lua e gamestore.lua para eu dar uma olhada por favor
-
Prey system
Eu consegui resolver por conta própria, porém acredito de fato que não seja o melhor jeito para resolver essa situação, mas foi da única forma que consegui. 1 - No arquivo "src/iologindata.cpp", altere o seguinte trecho: De: DBInsert preyDataQuery("INSERT INTO `prey_slots` (`player_id`, `num`, `state`, `unlocked`, `current`, `monster_list`, `free_reroll_in`, `time_left`, `next_use`, `bonus_type`, `bonus_value`, `bonus_grade`) VALUES "); for (size_t num = 0; num < PREY_SLOTNUM_THIRD + 1; num++) { query << player->getGUID() << ',' << num << ',' << 3 << ',' << 1 << ',' << db.escapeString("") << ',' << db.escapeString("") << ',' << 0 << ',' << 0 << ',' << 0 << ',' << 0 << ',' << 0 << ',' << 0; if (!preyDataQuery.addRow(query)) { return false; } } Para: DBInsert preyDataQuery("INSERT INTO `prey_slots` (`player_id`, `num`, `state`, `unlocked`, `current`, `monster_list`, `free_reroll_in`, `time_left`, `next_use`, `bonus_type`, `bonus_value`, `bonus_grade`) VALUES "); for (size_t num = 0; num < PREY_SLOTNUM_THIRD + 1; num++) { query << player->getGUID() << ',' << num << ',' << "CASE WHEN `num` = 2 AND `player_id` NOT IN(SELECT `player_id` FROM `player_storage` WHERE `key` = 63253 AND `value` = 1) THEN 1 ELSE 3 END" << ',' << "CASE WHEN `num` = 2 AND `player_id` NOT IN(SELECT `player_id` FROM `player_storage` WHERE `key` = 63253 AND `value` = 1) THEN 0 ELSE 1 END" << ',' << db.escapeString("") << ',' << db.escapeString("") << ',' << 0 << ',' << 0 << ',' << 0 << ',' << 0 << ',' << 0 << ',' << 0; if (!preyDataQuery.addRow(query)) { return false; } } 2 - No arquivo "data/modules/scripts/gamestore/gamestore.lua" defina o preço da compra do slot prey e guarde esse valor pois será utilizado no próximo arquivo. 3 - No arquivo "data/modules/scripts/gamestore/init.lua" altere o seguinte trecho: De: function GameStore.processPreySlotPurchase(player) if player:getStorageValue(63253) < 1 then player:setStorageValue(63253, 1) end player:setStorageValue(63253, 1) end Para: function GameStore.processPreySlotPurchase(player) local playerId = player:getId() local playerGuid = player:getGuid() local accountId = player:getAccountId() if player:getStorageValue(63253) < 1 then local tile = Tile(player:getPosition()) if (tile) then if (not tile:hasFlag(TILESTATE_PROTECTIONZONE)) then return error({code = 1, message = "You can unlock your third prey slot only in Protection Zone."}) end end player:setStorageValue(63253, 1) message = "You have successfully unlocked your third prey slot permanently, relogin!" player:remove() db.query("UPDATE `prey_slots` SET `state` = 3, `unlocked` = 1 WHERE `player_id` = " .. playerGuid .. " AND `num` = 2") db.query("UPDATE `accounts` SET `coins` = `coins` -30 WHERE `id` = " .. accountId) GameStore.insertHistory(accountId, GameStore.HistoryTypes.HISTORY_TYPE_NONE, "Permanent Prey Slot", -30) addEvent(function() local player = Player(playerId) if not player then return false end end, 500) end end Na parte 3, você precisará alterar o valor da prey slot definida na gamestore. Altere nesses dois trechos em vermelho: 1: db.query("UPDATE `accounts` SET `coins` = `coins` -30 WHERE `id` = " .. accountId) 2: GameStore.insertHistory(accountId, GameStore.HistoryTypes.HISTORY_TYPE_NONE, "Permanent Prey Slot", -30) Feito isso, basta compilar novamente o tfs e testar. Aqui funcionou direito. Caso tenha algum problema, pode me perguntar que eu tento ajudar. Vale ressaltar novamente: o método que eu utilizei não é o mais adequado por causa dos CASES no iologindata.cpp e também por dar muita volta atoa, mas foi o único jeito que consegui pois me falta muito conhecimento em C++ e LUA para poder desenvolver melhor esse código. []s
-
-
[TFS 1.3] Problema com terceira prey slot
.Qual servidor ou website você utiliza como base? OTServBR - Global (https://github.com/opentibiabr/OTServBR-Global) Qual o motivo deste tópico? No servidor que estou utilizando como base, os três prey slots vem liberados por padrão. Eu gostaria de bloquear o terceiro slot, e permitir liberá-lo através da compra na game store. A informação desses slots fica guardada na tabela "prey_slots", onde temos as colunas "player_id, num, state e unlocked". A coluna "num" identifica qual slot é (0, 1 ou 2). A coluna "state" identifica se o slot está sem nenhum bixo selecionado, se há algum bixo selecionado ou se está inativa. A coluna "unlocked" identifica se o slot está liberado ou desativado (0 ou 1). Por padrão, quando você loga pela primeira vez no char, é registrado na tabela "prey_slots" os seguites registros: Cabeçalho: player_id, num, state, unlocked. x, 0, 3, 1 x, 1, 3, 1 x, 2, 3, 1 Onde "x" é o id do player, state = 3 para todos indicando que o slot está disponível para selecionar alguma criatura, e unlocked = 1 para todos indicando que o player "x" possui permissão de utilizar o slot. Essa informação de como os registros serão registrados nessa tabela fica nesse trecho de código do arquivo "src/iologindata.cpp": Então para bloquear o terceiro slot por padrão, pensei em alterar a query que insere os registros, desse jeito: De: DBInsert preyDataQuery("INSERT INTO `prey_slots` (`player_id`, `num`, `state`, `unlocked`, `current`, `monster_list`, `free_reroll_in`, `time_left`, `next_use`, `bonus_type`, `bonus_value`, `bonus_grade`) VALUES "); for (size_t num = 0; num < PREY_SLOTNUM_THIRD + 1; num++) { query << player->getGUID() << ',' << num << ',' << 3 << ',' << 1 << ',' << db.escapeString("") << ',' << db.escapeString("") << ',' << 0 << ',' << 0 << ',' << 0 << ',' << 0 << ',' << 0 << ',' << 0; Para: DBInsert preyDataQuery("INSERT INTO `prey_slots` (`player_id`, `num`, `state`, `unlocked`, `current`, `monster_list`, `free_reroll_in`, `time_left`, `next_use`, `bonus_type`, `bonus_value`, `bonus_grade`) VALUES "); for (size_t num = 0; num < PREY_SLOTNUM_THIRD + 1; num++) { query << player->getGUID() << ',' << num << ',' << "CASE WHEN `num` = 2 THEN 1 ELSE 3 END" << ',' << "CASE WHEN `num` = 2 THEN 0 ELSE 1 END" << ',' << db.escapeString("") << ',' << db.escapeString("") << ',' << 0 << ',' << 0 << ',' << 0 << ',' << 0 << ',' << 0 << ',' << 0; Até ai beleza... Consegui - de um jeito bem porco - bloquear o terceiro slot por padrão. Porém agora não sei o que fazer para liberar esse slot quando o player compra na gamestore. Atualmente, quando o jogador compra o slot na gamestore, ele recebe o storage id "63253" com o valor "1", porém nada mais acontece. Pensei então em botar para atribuir o storage e então logo em seguida rodar o update na tabela "prey_slots" atualizando os valores de "state" para 3 e "unlocked" para 1 onde "num" for 2, e quando isso acontece, ele até atualiza no banco de dados porém o slot não é liberado instantaneamente para o player, teoricamente ele deveria deslogar e logar para que sejam lidos os novos valores dessa tabela, mas quando ele reloga, os valores de "state" e "unlocked" voltam para 1 e 0 respectivamente. Já tentei colocar esse mesmo update no arquivo "data/creaturescript/scripts/others/logout.lua", verificando se o player possui a storage e se o valor de "unlocked" for 0, mas não funcionou. Não vou conseguir postar as minhas tentativas além desse de/para que postei acima do arquivo iologindata.cpp porque esmurrei tanto os arquivos que acabei fazendo muita merda e tive que retornar para o ponto onde estava quando apenas deixei o terceiro slot bloqueado. Me falta muito conhecimento a respeito da sintaxe C++ e também LUA, por isso estou me ferrando tanto, e por isso também que optei por bloquear o terceiro slot pela query ao invés de ir por um caminho mais descente. Se alguém puder me ajudar, ficarei muito grato e com certeza darei rep++ para todos que pelo menos tentarem me ajudar. Caso faltei com alguma informação essencial, por gentileza me questione abaixo que forneço o que for preciso. Perdoem-me pelo textão, eu sei, TLDR mas tentei ser o mais claro o possível e agora já são 13:32 e estou trabalhando em implementações e correções desde ontem de tarde, então já estou bem lesado kkk. Está surgindo algum erro? Se sim coloque-o aqui. -- Você tem o código disponível? Se tiver publique-o aqui: -- Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. --
-
War 10.99 com montaria
Animo easy
-
-
-
-
VitorNM reagiu a uma resposta no tópico: TFS 1.3 / Otx3 | Otg Server Global - 11x - 12.40 (SPRITES 13.40) (Updates Diarios)
-
VitorNM reagiu a uma resposta no tópico: TFS 1.3 / Otx3 | Otg Server Global - 11x - 12.40 (SPRITES 13.40) (Updates Diarios)
-
VitorNM reagiu a uma resposta no tópico: TFS 1.3 / Otx3 | Otg Server Global - 11x - 12.40 (SPRITES 13.40) (Updates Diarios)
-
VitorNM reagiu a uma resposta no tópico: TFS 1.3 / Otx3 | Otg Server Global - 11x - 12.40 (SPRITES 13.40) (Updates Diarios)
-
Dornellas reagiu a uma resposta no tópico: [PEDIDO] Gesior & TFS 1.0 -> Top 5 Level no canto superior direito do site
-
-
-
-
fillipek2 reagiu a uma resposta no tópico: (Resolvido)[Dúvida] Como mudar o local onde o player nasce?
-
-
[DUVIDA] Não consigo criar table para esse erro
É uma opção válida. Vamos supor esse cenário: Servidor 1 - Servidor atual, com o problema da tabela. Servidor 2 - Servidor do qual você utilizará os scripts do sistema de castle e as tables do mesmo BD 1 - Banco de dados do servidor atual (faltando tabelas do sistema castle) BD 2 - Banco de dados do servidor do qual utilizará para extrair os scripts e as tables Depois de substituir os scripts e o mapa, quando você rodar o Servidor 1, ele dará um erro apontando a falta da tabela. Você terá de fazer um dump da tabela no BD 2, para então importar no BD 1 Entendeu o processo?
-
[DUVIDA] Não consigo criar table para esse erro
Substituir os scripts pelo que? Para criar a table que funcione com o script você precisa saber quais são as colunas da tabela e os tipos de dados das mesmas, não adianta nada criar a tabela sem saber essas informações só para o problema parar de aparecer, sendo que o sistema em questão não vai funcionar corretamente, podendo até gerar uma falha de segurança no servidor, compreende?
-
[DUVIDA] Não consigo criar table para esse erro
Acho que o mais indicado seria entrar em contato com o desenvolvedor do servidor para que ele possa ajudar com isso. Normalmente o desenvolvedor disponibiliza a base de dados pronta para uso compatível com o servidor, estranho estar faltando tables.
-
[Link Quebrado] Pokemon Evolution [DxP]
Caraio mano, muito obrigado por compartilhar. Estou baixando para testar, pelo visto é bem completo. Rep ++ Pessoal quer tudo na mão beijada é foda, já não basta ele compartilhar com o fórum querem que faça tutorial ensinando fazer tudo. Google e TibiaKing estão ai pra isso negada, vlw flw.
-
(Resolvido)[Dúvida] Como mudar o local onde o player nasce?
Opa, boa noite. Seguinte, se você está usando mysql + site, você precisa primeiro desativar o account manager, isso pode gerar uns problemas futuros. Essa alteração deve ser feita na pasta base do servidor, no arquivo "config.lua". A linha "accountManager = true" deve ser alterada para "accountManager = false". Feito isso, o acc manager será desativado. Agora, vamos mudar a posição inicial do player quando loga um char novo. Acesse seu banco de dados e rode essa query: SELECT * FROM players WHERE name LIKE '%sample%'; Esse comando te trará o player que é usado como base para os novos chares, todo char novo será copiado dele (inclusive a posição inicial). Então no resultado da query, procure pelo campo "posx" "posy" e "posz" essa é a posição inicial dele, todos os chares começarão nessa coordenada (x, y e z). Basta alterar esses campos do char sample, se estiver usando phpMyAdmin é só dar um clique duplo no número para alterar, ou pode alterar utilizando a seguinte query: UPDATE players SET posx = 111, posy = 222, posz = 7 WHERE id = X; Lembrando que os valores dos campos "posx, posy e posz" é você quem determinará, e o campo "id = X" é o ID do player sample, que você consegue checar na primeira query que eu passei. O post pode estar bem bagunçado, mas acredito que sanou as dúvidas, estou escrevendo correndo isso pois o tempo está curto Qualquer dúvida coloco-me a disposição. Atenciosamente, VitorNM.
-
[DUVIDA] Não consigo criar table para esse erro
Você adicionou um sistema de guild castle, onde ele faz contato com o banco de dados do servidor, e esse erro está sendo apontado pela falta da tabela em questão, que impede o sistema funcionar corretamente. A solução seria criar a tabela no banco de dados, para isso você precisa saber quais as colunas dessa tabela e os tipos de dados de cada uma, as chaves primárias e extrangeiras... Você possui essas informações? De onde você pegou esse script de guild castle? Talvez lá deve estar explicando como criar a estrutura no banco de dados para ser compatível com o script..
-
[DUVIDA] Não consigo criar table para esse erro
A table "castle_dono" do bd "otservs" não existe.. Sua dúvida é como cria a table?
-
Type ground não da dano em elétrico
Bom, é o seguinte, no servidor que estou trabalhando, o attack type GROUND não da dano em pokemons do type elétrico, no caso deveria ser ao contrário: Attack elétrico não daria dano em pokemons do type ground. Não sei onde fica esse tipo de configuração, já procurei bastante e não consigo achar... Alguém ai disposto a ajudar? Rep++