Jump to content

luangop

Campones
  • Content Count

    55
  • Joined

  • Last visited

  • xPoints

    0 [ Donate ]

About luangop

  • Rank
    OT admin

Perfil

  • Gênero
    Masculino

Informações

  • Char no Tibia
    [ADM] Luan
  • Forma que conheci o xTibia
    Sites de Busca
  • Sou
    OT-Admin

Recent Profile Visitors

1.667 profile views
  1. luangop

    Sistema de Catch

    Aqui está todas as funções relacionadas a statistics do meu OT, ve se funciona. Se ainda der erro deve ser algo na sua source sei lá, pq aqui ta perfeito. function getStatistics(pokemon, tries, success) local ret1 = 0 local ret2 = 0 local poke = ""..string.upper(string.sub(pokemon, 1, 1))..""..string.lower(string.sub(pokemon, 2, 30)).."" local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt" local arq = io.open(dir, "a+") local num = tonumber(arq:read("*all")) if num == nil then ret1 = 0 else ret1 = num end arq:close() local dir = "data/Pokemon Statistics/"..poke.." Catches.txt" local arq = io.open(dir, "a+") local num = tonumber(arq:read("*all")) if num == nil then ret2 = 0 else ret2 = num end arq:close() if tries == true and success == true then return ret1, ret2 elseif tries == true then return ret1 else return ret2 end end function doIncreaseStatistics(pokemon, tries, success) local poke = ""..string.upper(string.sub(pokemon, 1, 1))..""..string.lower(string.sub(pokemon, 2, 30)).."" if tries == true then local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt" local arq = io.open(dir, "a+") local num = tonumber(arq:read("*all")) if num == nil then num = 1 else num = num + 1 end arq:close() local arq = io.open(dir, "w") arq:write(""..num.."") arq:close() end if success == true then local dir = "data/Pokemon Statistics/"..poke.." Catches.txt" local arq = io.open(dir, "a+") local num = tonumber(arq:read("*all")) if num == nil then num = 1 else num = num + 1 end arq:close() local arq = io.open(dir, "w") arq:write(""..num.."") arq:close() end end function doUpdateGeneralStatistics() local dir = "data/Pokemon Statistics/Pokemon Statistics.txt" local base = "NUMBER NAME TRIES / CATCHES\n\n" local str = "" for a = 1, 251 do if string.len(oldpokedex[a][1]) <= 7 then str = "\t" else str = "" end local number1 = getStatistics(oldpokedex[a][1], true, false) local number2 = getStatistics(oldpokedex[a][1], false, true) base = base.."["..threeNumbers(a).."]\t"..oldpokedex[a][1].."\t"..str..""..number1.." / "..number2.."\n" end local arq = io.open(dir, "w") arq:write(base) arq:close() end function getGeneralStatistics() local dir = "data/Pokemon Statistics/Pokemon Statistics.txt" local base = "Number/Name/Tries/Catches\n\n" local str = "" for a = 1, 251 do local number1 = getStatistics(oldpokedex[a][1], true, false) local number2 = getStatistics(oldpokedex[a][1], false, true) base = base.."["..threeNumbers(a).."] "..oldpokedex[a][1].." "..str..""..number1.." / "..number2.."\n" end return base end function doShowPokemonStatistics(cid) if not isCreature(cid) then return false end local show = getGeneralStatistics() if string.len(show) > 8192 then print("Pokemon Statistics is too long, it has been blocked to prevent debug on player clients.") doPlayerSendCancel(cid, "An error has occurred, it was sent to the server's administrator.") return false end doShowTextDialog(cid, math.random(2391, 2394), show) end
  2. luangop

    Sistema de Catch

    Está rodando em linux ou windos? Se for windows, execute o servidor como administrador, o windows pode estar impedindo o server de manipular o .txt
  3. Primeiro poderia ter um pouco mais de respeito "só ta enchendo o saco" E não me referi somente a você. Me refiro a 90% do povo do fórum.. Esse servidor ai tem muito conteúdo que eu criei na base PKM Lerme... Se você procurar deve até ter scripts ainda escritos 'pkm lerme' dentro.. #Paz
  4. Caraca hj em dia os cara posta base e nem se da o trabalho de deixar créditos de onde veio as coisas...
  5. Também estou procurando por isso, se conseguir por favor me avise xD
  6. TFS 0.4 rev 3777 Estou a dias tentando fazer uma função na source e não consigo, sou leigo. Este sistema é para um servidor exp alta, já consegui fazer o level do player aparecer no lugar da experiencia no client, pois no lugar do level buga quando chega em um número muito alto, para tal simplesmente fiz isso: uint64_t experience = player->getPlayerInfo(PLAYERINFO_LEVEL); msg->put<uint32_t>(experience); E como o servidor tem sistema de resets, eu queria fazer aparecer no lugar do level, o reset do player.. primeiramente meu sistema de resets era com storage, e eu consegui fazer isso da seguinte maneira: std::string value; player->getStorage(378378, value); int32_t resets = atoi(value.c_str()); msg->put<uint16_t>(resets); Mas por motivos de praticidade para incluir informações e sistemas no site, mudei meu sistema de reset para registrar os resets na database. no caso o nome da coluna ficou 'reset'. Então tentei fazer aparecer os resets no client com uma query mysql mas como não tenho conhecimento de mysql em C++ deu errado kk Vou postar como eu tentei: Database* db = Database::getInstance(); DBQuery query; query << "SELECT `reset` FROM `players` WHERE `id` = " << player->getGUID(); DBResult* result; std::string resets; resets = result->getDataInt("reset"); int32_t resetes = atoi(resets.c_str()); msg->put<uint16_t>(resetes); Obs: Isso não é source de OTClient, isso é na source do servidor, eu utilizo oldclient mesmo.. esta é a parte que envia para o client a informação de experiencia e level para que o client mostre ao player.. No caso originalmente está assim na source: msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_LEVEL)); Neste msg->put.. preciso por o valor que se encontra na minha database, na tabela reset. Eu não sei fazer corretamente a query mysql e o code pra extrair a informação como int (número) e apresentar no lugar de player->getPlayerInfo(PLAYERINFO_LEVEL) Eu já consegui alterar a informação que o servidor envia ao client, já está aparecendo meu level no lugar da exp, e resets no lugar do level quando uso o script de resets por storage, só não consigo fazer a query correta pra puxar a informação da database. Segue prints:
  7. O primeiro foi algum player que conseguiu de alguma forma desequipar o icone do portrait e bugou o char. Quanto ao segundo só vendo o script pra ter uma ideia.
  8. Olá galera, estou desenvolvendo pro meu servidor um sistema o qual não faz diferença dizer qual é, onde engalhei numa parte e gostaria de ver se alguém poderia me ajudar.Preciso de uma função que checa na minha database, se existe algum player que tenha o valor X na storage Y.Por exemplo: function verificar(10023, 54) -- storage, valorif existe alguém com o valor 54 na storage 10023 thenreturn trueelsereturn falseendend Como sou péssimo quando se fala de query, não consegui fazer essa função, alguém poderia por favor me ajudar? Se possível, retornar o nome do jogador que possui tal valor na storage. Obs: Servidor SQlite Já resolvi com ajuda de um membro de outro fórum, moderação por favor pode fechar o tópico.
  9. Olá, tem vários comandos !eject pelo fórum, porém nenhum dos que encontrei funcionou comigo, talvez pelo fato de eu usar SQLITE. Precisava muito desse comando no meu servidor, alguém possui um que funcione com SQLITE?
  10. Como o Codex NG disse, use storage para salvar os pontos, sendo que você não postou qual sua distribuição (base do servidor), não posso escrever os códigos para você. Se você me mandar a function do seu server que verifica se o player tem 6 pokes, e a função que add um poke para o player, eu crio o script.
  11. Bom cara, acho que isso que você está tentando fazer é quase impossível... pois parei pare pensar, mesmo se corrigir o NPC... e quanto a todo o restante do servidor? quanta coisa interage com o dinheiro? creio que para fazer o que você quer apenas nas sources, e não sei mexer nisso Boa sorte!
  12. Já me perdi também... vou baixar um servidor de pokémon aqui e realizar uns testes. Bom cara, acho que isso que você está tentando fazer é quase impossível... pois parei pare pensar, mesmo se corrigir o NPC... e quanto a todo o restante do servidor? quanta coisa interage com o dinheiro? creio que para fazer o que você quer apenas nas sources, e não sei mexer nisso Boa sorte!
  13. Eu sei que não tem nada haver com a fala do NPC, no momento estou focado em concertar a relação Preço do item no look x Preço do item COBRADO pelo NPC. Se isso der certo, depois vemos sobre a fala do NPC.
  14. Cara, esqueça o npchandler... Deixe o items.xml da forma original, ou seja, da forma que eu falei. e Modifique no modules.lua como eu falei, botando o / 100. E faça um teste agora para ver. OBS: reinicie o servidor antes de testar.
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...