Ir para conteúdo

luangop

Campones
  • Total de itens

    57
  • Registro em

  • Última visita

Posts postados por luangop

  1. 10 minutos atrás, Gengo disse:

    Entre em contato comigo pelo discord Gengo#8230 ficará mas fácil eu tentar ajudar você do que eu ficar perguntando cada coisa até chegar no problema, assim não fica poluindo muito o tópico com mensagens.

    #Resolvido! Foi erro meu, não utilizei o npc disponibilizado e deixei passar em branco a função doSendDialogNpcClose(cid)

    Vlw @Gengo

  2. 5 horas atrás, Wicke disse:

    Olha eu fiz isso porem nao deu certo nao, Mudei todos de a+ pra r+ e msm assim n foi 

    Windows porem executei e continua dando o erro!

    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

     

  3. 3 minutos atrás, victorxz disse:

    Ops desculpe  não estou  aqui pra ganha credito sobre a base e sim poder disponibilizá-la pra quem tem o prazer de poder tela se você e o dono dela posso muito bem coloca-la nos créditos mas se você não e o dono só ta enchendo o saco.

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

    0353f4b9-0a9d-422b-8142-a3759c246013.jpg

    58a168ef-88c4-4310-a99f-d2dd93ebfb00.jpg

    5c6ce68f-12eb-4a98-83db-15a9164db31b.jpg

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

  6. Em 28/11/2016 at 20:59, Deadpool disse:
    • Deletar players inativos, level baiaxo de 50, 20 days Inativo. Recomendo um backup do seu banco de dados antes desta ação.
    DELETE FROM players WHERE level < 50 AND lastlogin < UNIX_TIMESTAMP() - 20*24*60*60
    • Deletou um player do banco de dados? Com este código irá remover todos os items dele que ficaram no database.
    DELETE FROM player_items WHERE player_id NOT IN (SELECT id FROM players);

    Não tem nada haver com isso '-'

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

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

  9. 21 minutos atrás, Josegvb disse:

     

     

     

    ta, mas acho q ta funfando só q de um jeito estranho, tipo essence of fire é para valer 35 CENTS

    c2790cd198a7db619752a9f3e0393a4c.gif

     

    essence of fire,12162,35;

    certo!

     

    agora vamos comprar 1 ULTRA BALL (130 dollar)

    ultra ball,2392,13000;

    8fd9ef391d94f0590826ef1d019c4b30.gif

     

    what? kkkk nao entendi isso ai

     

    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!

  10. 43 minutos atrás, Josegvb disse:

     

    feito desse jeito

    20:01 Mark: Do you want to sell 1 essence of fire for 35 dollars?

     

            local backpack, totalCost = 1998, (amount * shopItem.buy) / 100

     

    pd: só minha opinao oq vc fez foi pra o MODULE q aparesce qndo vc fala trade... nao tem nada a ver com a fala do npc por isso nao muda nada la... e no shop mudou sim...

     

    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.

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

  12. 2 minutos atrás, Josegvb disse:

     

    entao sem a modificaçao la nos items.xml ele fica do jeito q eu falei =x

    sandbag,12177,15000;

    18:27 Mark: Do you want to sell 1 sandbag for 15000 dollars?

     

    Mas quando você fez esse teste ai, ainda não tinha feito a modificação que eu falei para fazer no modules.lua da pasta data/npc/lib/npcsystem

  13. Tenta assim:

        <item id="2160" article="a" name="ten thousand dollar note" plural="ten thousand dollar notes">        <attribute key="weight" value="0" />        <attribute key="worth" value="1000000" />        <attribute key="description" value="Valuable money!" />    </item>     <item id="2152" article="a" name="hundred dollar note" plural="hundred dollar notes">        <attribute key="weight" value="0" />        <attribute key="worth" value="10000" />        <attribute key="description" value="One hundred of these can be converted in a ten thound dollar note." />    </item>     <item id="2148" article="a" name="dollar note" plural="dollar notes">        <attribute key="weight" value="0" />        <attribute key="worth" value="100" />        <attribute key="description" value="One hundred of these can be converted in a hundred dollar note." />    </item>     <item id="12416" article="a" name="cent" plural="cents">        <attribute key="description" value="One hundred of these can be converted in a dollar." />        <attribute key="worth" value="1" />    </item>   

     

  14. 3 minutos atrás, Josegvb disse:

     

    ahh ta, entendi achei q era deixar como tava antes pq agr ia ser /100

     

    entao vou colocar no preço POREM, ai voltamos ao problema, como eu posso colocar o valor do CENT no 0.01? pq com isso o server crasha :|:

     

    Me manda como estão os valores no items.xml

  15. 16 minutos atrás, Josegvb disse:

     

    o resultado paresce bom!!, tipo agr o npc ta mostrando certo NA SHOP

    2b2d71032697c29ab98d2a5a83b8ef98.gif

     

    porem na fala fala o preço do item no npc

    essence of fire,12162,35;

    18:22 Mark: Do you want to sell 1 essence of fire for 35 dollars?

    e fica ruim isso por ejemplo na Sandbag

     

    pra valer 150$ tive q deixar assim

    sandbag,12177,15000;

    18:27 Mark: Do you want to sell 1 sandbag for 15000 dollars?

     

     

    Creio que você não removeu '0's que chega no items.xml ... tente remover mais 2 zeros nos valores do dinheiro no items.xml como o amigo ensinou acima.

  16. 1 hora atrás, Josegvb disse:

     

    foda =x e colocar pra q 1 essence valer 1$ cada uma é ruim kk 

    Dei uma pesquisada na LIB, tente fazer isso:

    data/npc/lib/npcsystem abra o arquivo modules.lua

    procure por essa linha: 

    local backpack, totalCost = 1988, amount * shopItem.buy

    troque por:

    local backpack, totalCost = 1988, (amount * shopItem.buy) / 100

     

    Não testei, me diga o resultado xD

  • Quem Está Navegando   0 membros estão online

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