Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Rev. 3777 TFS 0.4 8.60

Tenho tentado usar esse sistema de Elo. Ele funciona e atribui o ranking e bonus skill, mas ao tentar usar o comando "!kage" que deveria atribuir uma newtype para o kage ele não faz nada só manda a mensagem "Apenas kage pode usar esse comando!".
https://prnt.sc/w4alwf   << imagem demonstrando q o personagem já é kage.

Lib.lua

Spoiler

if not GRADUATION then
    GRADUATION = {}
    GRADUATION.conditions = {}
    GRADUATION.minKagePoints = 500
    GRADUATION.eloPointsStorage = 176602
    GRADUATION.kages = {}
end

GRADUATION.RANKS = {


    {
    
        name = "Shinobi",
        minPoints = 0,
        skillBonus = 0,
    
    },
    
    {
    
        name = "Genin",
        minPoints = 50,
        skillBonus = 5,
    
    },
    
    {
    
        name = "Chunin",
        minPoints = 100,
        skillBonus = 8,
    
    },
	
	{
    
        name = "Jounin",
        minPoints = 200,
        skillBonus = 10,
    
    },
				
	{
    
        name = "Sennin",
        minPoints = 400,
        skillBonus = 15,
		skillAtribute = 15,
		
    
    },
				
	[50] = {
        name = "Kage",
		
        minPoints = -1,
        skillBonus = 20,
		skillAtribute = 20,
		skillHp = 20000
    },

}


for _, rk in pairs (GRADUATION.RANKS) do
    local cond = createConditionObject(CONDITION_ATTRIBUTES)
    setConditionParam(cond, CONDITION_PARAM_SUBID, 910)
    setConditionParam(cond, CONDITION_PARAM_TICKS, -1)
    setConditionParam(cond, CONDITION_PARAM_STAT_MAGICLEVEL, rk.skillBonus)
    setConditionParam(cond, CONDITION_PARAM_SKILL_FIST, rk.skillAtribute)
    setConditionParam(cond, CONDITION_PARAM_SKILL_CLUB, rk.skillAtribute)
    setConditionParam(cond, CONDITION_PARAM_SKILL_SWORD, rk.skillAtribute)
    setConditionParam(cond, CONDITION_PARAM_SKILL_DISTANCE, rk.skillAtribute)
	setConditionParam(cond, CONDITION_PARAM_STAT_MAXHEALTH, rk.skillHp)	
    GRADUATION.conditions[_] = cond
end


GRADUATION.setEloPoints = function(cid, value)
    setPlayerStorageValue(cid, GRADUATION.eloPointsStorage, value)
    updateRankBonus(cid)
end

GRADUATION.getEloPoints = function(cid)
    local points = getPlayerStorageValue(cid, GRADUATION.eloPointsStorage)
    if points == -1 then points = 0 end
    return points
end

GRADUATION.addEloPoints = function(cid, add)
    GRADUATION.setEloPoints(cid, GRADUATION.getEloPoints(cid) + add)
    return GRADUATION.getEloPoints(cid)
end

GRADUATION.getPlayerElo = function(cid)
    local playerRank = nil
    local eloPoints = GRADUATION.getEloPoints(cid)
    if #GRADUATION.kages == 0 then inputKages() end
    for _, kage in pairs(GRADUATION.kages) do
        if kage.guid == getPlayerGUID(cid) then
            playerRank = GRADUATION.RANKS[50]
            playerRank.rankId = 50
            return playerRank
        end
    end
    local town = getPlayerTown(cid)
    for _, rank in pairs(GRADUATION.RANKS) do
        if (GRADUATION.kages[town] and rank.pointsBasedOnKage and eloPoints >= (rank.minPoints/100 * GRADUATION.kages[town].eloPoints)) or (rank.minPoints >= 0 and eloPoints >= rank.minPoints and not rank.pointsBasedOnKage) then
            playerRank = rank
            playerRank.rankId = _
        end
    end
    return playerRank
end


function updateRankBonus(cid)

    local rank = GRADUATION.getPlayerElo(cid)
	doAddCondition(cid, GRADUATION.conditions[rank.rankId])

end

GAME_TOWNS = {
    {id=1, name="Small City", kage={id=5, name="Hokage"}, outfitId = 904},
    {id=2, name="Rookgard", kage={id=4, name="Kazekage"}, outfitId = 905},
    {id=3, name="City Center", kage={id=3, name="Mizukage"}, outfitId = 906},
    {id=4, name="Ice City", kage={id=2, name="Tsuchikage"}, outfitId = 903},
    {id=5, name="Cidade Perdida", kage={id=1, name="Raikage"}, outfitId = 902},
}

function refreshTowns()
    print("Updating towns kage...")
    GRADUATION.kages = {}
    db.query("DELETE FROM `player_storage` WHERE `key` = 11151;")
    for _, town in pairs(GAME_TOWNS) do
        local result = db.getResult("SELECT `p`.`name`, `p`.`town_id`, `st`.`player_id`, CONVERT(`st`.`value`, UNSIGNED INTEGER) AS `sto_value` FROM `player_storage` AS `st`, `players` AS `p` WHERE `p`.id = `st`.`player_id` and `st`.`key` = 176602 AND `p`.`town_id` = "..tonumber(town.id).." ORDER BY `sto_value` DESC LIMIT 1;")
        if(result:getID() ~= -1) then
            if (result:getDataInt('sto_value') >= GRADUATION.minKagePoints) then
                db.query("INSERT INTO `player_storage` VALUES ("..tonumber(result:getDataInt('player_id'))..",11151,"..tostring(town.kage.id)..");");
                print(town.kage.name.." from ".. town.name.." is ".. result:getDataString('name') ..".")
                GRADUATION.kages[town.id] = {id = town.kage.id, guid = result:getDataInt('player_id'), eloPoints = result:getDataInt('sto_value')}
            end
            result:free()
        end
    end
end

function inputKages()
    for _, town in pairs(GAME_TOWNS) do
        local result = db.getResult("SELECT `p`.`name`, `p`.`town_id`, `st`.`player_id`, CONVERT(`st`.`value`, UNSIGNED INTEGER) AS `sto_value` FROM `player_storage` AS `st`, `players` AS `p` WHERE `p`.id = `st`.`player_id` and `st`.`key` = 176602 AND `p`.`town_id` = "..tonumber(town.id).." ORDER BY `sto_value` DESC LIMIT 1;")
        if(result:getID() ~= -1) then
            if (result:getDataInt('sto_value') >= GRADUATION.minKagePoints) then
                GRADUATION.kages[town.id] = {id = town.kage.id, guid = result:getDataInt('player_id'), eloPoints = result:getDataInt('sto_value')}
            end
            result:free()
        end
    end
end


function getPlayerTownInfo(cid)
    local townId = getPlayerTown(cid)
    for _, town in pairs(GAME_TOWNS) do
        if town.id == townId then
            return town
        end
    end
    return nil
end

 

 

Talkactions:
 

Spoiler

function onSay(cid, words, param)

local playerTownData = GAME_TOWNS[getPlayerTown(cid)]
	local playerTownData = getPlayerTownInfo(cid)
		if playerTownData and getPlayerStorageValue(cid, 11151) and playerTownData.kage.id == tonumber(getPlayerStorageValue(cid, 11151)) then
			doCreatureChangeOutfit(cid, {lookType=playerTownData.outfitId})
		else
			doPlayerSendCancel(cid, "Apenas kage pode usar esse comando!.")
		end
	return true
end

 

 

Link para o post
Compartilhar em outros sites

ele não usa outfit.xml pq ele seta a newtype pelo comando = doCreatureChangeOutfit(cid, {lookType=playerTownData.outfitId})

1 hora atrás, elielder disse:

GAME_TOWNS = { {id=1, name="Small City", kage={id=5, name="Hokage"}, outfitId = 904}, {id=2, name="Rookgard", kage={id=4, name="Kazekage"}, outfitId = 905}, {id=3, name="City Center", kage={id=3, name="Mizukage"}, outfitId = 906}, {id=4, name="Ice City", kage={id=2, name="Tsuchikage"}, outfitId = 903}, {id=5, name="Cidade Perdida", kage={id=1, name="Raikage"}, outfitId = 902}, }

a outfit de cada kage esta setada no lib

Link para o post
Compartilhar em outros sites
21 horas atrás, elielder disse:

ele não usa outfit.xml pq ele seta a newtype pelo comando = doCreatureChangeOutfit(cid, {lookType=playerTownData.outfitId})

a outfit de cada kage esta setada no lib

Ent é por storag chapei, mas vc testou usando a sto que ele ganha quando vira kage?

Editado por Nysman (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por braianlomas
      Como faço para corrigir esse problema para meu cliente, eu uso o tfs 0.3.6  
      Quero resolver esse problema que tenho no meu cliente, como e onde posso resolver?  
      Eu uso o tfs 0.3.6, não tenho as fontes do cliente, se você puder me dar eu vou amá-las para sempre  
       

       
    • Por A.Mokk
      Ola pessoal, estou tentando compilar o TFS 1.5 Downgrade para 8.60 atraves do MSVC 2022, ao tentar compilar da o seguinte erro:
       
       
      Fiz o download do MSVC, GitDash, TFS-SDK-3.2, e de varios boosts que tentei, ao fazer o seguinte procedimento no GitDash:
       
      Ao chegar em ./bootstrap-vcpkg.bat o GitDash nao consegue realizar o procedimento corretamente, alguem poderia me ajudar ?

      Tentei de diversas formas mas o mesmo erro sempre persiste, atualmente meu servidor utiliza TFS 0.4, consigo compilar sem nenhum problema no MSVC 2010, porem, as limitações do TFS 0.4 estão me fazendo precisar atualizar, se alguem souber como corrigir esses erros eu agradeço !

      Tutoriais utilizados :
      Compiling on Windows (vcpkg) · otland/forgottenserver Wiki · GitHub
      Compiling on Windows · otland/forgottenserver Wiki · GitHub
      Compilando TFS 1.3 com vídeo-aula - Tutoriais Infraestrutura & Proteção - Tibia King - Tudo sobre Tibia, OTServ e Bots!
      Compilar TFS 1.3 Vcpkg - Tutoriais Infraestrutura & Proteção - Tibia King - Tudo sobre Tibia, OTServ e Bots!
       
      O que acontece no Powershell:
       
    • Por thunmin
      .Qual servidor ou website você utiliza como base? 
      Canary 2.3.6
      Qual o motivo deste tópico? 
      Queria fazer com que os players não pudessem mexer no aleta sio, pois, agora os mesmos estão conseguindo mexer nos itens
      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. 
       
    • Por thunmin
      .Qual servidor ou website você utiliza como base? 
      canary para o cliente 13.16
      Qual o motivo deste tópico? 
      Não consigo encontrar onde ajusta
      to com o problema no 13.16  o exausted, por exemplo os kinas era pra combar exori, erori gran e exori min, porém não ta indo ta dando exausted o char ta soltando magia ou runa e não consegue usar as potions
      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. 
       
    • Por Andersontatuador
      Olá galera da TK, me chamo Anderson estou procurando alguém profissional em otservs e site.
      Já tenho um servidor o site e o cliente preciso só de uma pessoal competente, que esteja empenhado a trabalhar,
      não quero nada de graça, pois nessa onda fui mais roubado do quer eu pagar um profissional.
      caso alguém se interesse entrar em contato comigo através do whatsapp
      82 9 9304-9462
       
      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. 
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo