Ir para conteúdo

Featured Replies

Postado

Olá, sei que existe esse sistema no global, já vi em outros servidores também. Não sei se é feito source code ou LUA, porém gostaria de propor esse desafio para vocês e ajudar bastante gente, inclusive eu.

 

Funciona que quando o player toma KICK pelo servidor, ou até mesmo sua mãe puxando o cabo da internet, ou coisas do tipo o IP do cara fica 0.0.0.0, gostaria de que ele não tomasse hit pra monstros e não morrese!

  • Respostas 6
  • Visualizações 833
  • Created
  • Última resposta

Top Posters In This Topic

  • 2 weeks later...
Postado
  • Autor
Em 07/08/2016 ás 18:05, CirocReturn disse:

Todas as ultimas versões do TFS 1.2 já tem isso, basta colocar para dar a storage do sistema no login.lua no creaturescripts.

hm, primeiramente boa noite. Como eu descubro a storage que está usando? se eu nem sei aonde é que ta o sistema? geralmente ele vem incluso nas source.

Postado

Procura no seu login.lua se tem essas linhas:

local function onMovementRemoveProtection(cid, oldPosition, time)
	local player = Player(cid)
	if not player then
		return true
	end

	local playerPosition = player:getPosition()
	if (playerPosition.x ~= oldPosition.x or playerPosition.y ~= oldPosition.y or playerPosition.z ~= oldPosition.z) or player:getTarget() then
		player:setStorageValue(Storage.combatProtectionStorage, 0)
		return true
	end

	addEvent(onMovementRemoveProtection, 1000, cid, oldPosition, time - 1)
end

e essas:

	if player:getStorageValue(Storage.combatProtectionStorage) <= os.time() then
		player:setStorageValue(Storage.combatProtectionStorage, os.time() + 10)
		onMovementRemoveProtection(playerId, player:getPosition(), 10)
	end

caso tenha essas linhas então já existe o sistema no seu servidor, muitas vezes a gente não percebe eu mesmo demorei pra ver que já tinha, se já tiver as linhas teste da seguinte maneira, de exit em char nos treiners e fique com outro do lado de mc pra ver se os monstros param de atacar e em seguida o player toma kick, se isso ocorrer o sistema já está ativo.

Ajudei? REP+

gLpfVZ6.png.1639daf943fbd385c7ba030675b6ffc0.png

DotA Event (TFS 1.x) => Clique Aqui

Skype: rike.sexy

Postado
  • Autor
22 horas atrás, CirocReturn disse:

Procura no seu login.lua se tem essas linhas:


local function onMovementRemoveProtection(cid, oldPosition, time)
	local player = Player(cid)
	if not player then
		return true
	end

	local playerPosition = player:getPosition()
	if (playerPosition.x ~= oldPosition.x or playerPosition.y ~= oldPosition.y or playerPosition.z ~= oldPosition.z) or player:getTarget() then
		player:setStorageValue(Storage.combatProtectionStorage, 0)
		return true
	end

	addEvent(onMovementRemoveProtection, 1000, cid, oldPosition, time - 1)
end

e essas:


	if player:getStorageValue(Storage.combatProtectionStorage) <= os.time() then
		player:setStorageValue(Storage.combatProtectionStorage, os.time() + 10)
		onMovementRemoveProtection(playerId, player:getPosition(), 10)
	end

caso tenha essas linhas então já existe o sistema no seu servidor, muitas vezes a gente não percebe eu mesmo demorei pra ver que já tinha, se já tiver as linhas teste da seguinte maneira, de exit em char nos treiners e fique com outro do lado de mc pra ver se os monstros param de atacar e em seguida o player toma kick, se isso ocorrer o sistema já está ativo.

 

Nenhuma delas, segue meu login.. rs

 

Coloquei em spoiler pois é meio grandinho..

 

login.lua

 

 

function onLogin(cid)
    local player = Player(cid)

    local loginStr = 'Welcome to ' .. configManager.getString(configKeys.SERVER_NAME) .. ' World, if you are not a Premium Account, see the benefits on our website and become a player with more advantages!'
    if player:getLastLoginSaved() <= 0 then
        loginStr = loginStr .. ' Please choose your outfit.'
        player:sendTutorial(1)
    else
        if loginStr ~= '' then
            player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)
        end

        loginStr = string.format("Your last visit was on %s.", os.date("%a %b %d %X %Y", player:getLastLoginSaved()))
    end
    player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)
    
    local mensagem_premium = "You have "..player:getPremiumDays().." Premium Days and 20% more experience with full stamina."
    if isPremium(cid) then
        player:sendTextMessage(MESSAGE_EVENT_ADVANCE, mensagem_premium)
    end

    -- Stamina
    nextUseStaminaTime[player.uid] = 0
    
-- Promotion
    local vocation = player:getVocation()
    local promotion = vocation:getPromotion()
    local value = player:getStorageValue(STORAGEVALUE_PROMOTION)
    if not promotion and value ~= 1 then
        player:setStorageValue(STORAGEVALUE_PROMOTION, 1)
    elseif value == 1 then
        player:setVocation(promotion)
    end

local defaultTown = "Intiri" -- default town where player is teleported if his home town is in premium area
local freeTowns = {"Intiri", "Ald'ruhn", "Skyrim", "Ithilien", "Ascal", "Avendale"} -- towns in free account area

if player:getPremiumDays() <= 0 and player:getStorageValue(998899) == 1 then
    local town = player:getTown()
    town = isInArray(freeTowns, town:getName()) and town or Town(defaultTown)
    player:teleportTo(town:getTemplePosition())
    player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Your Premium Time has expired.")
    player:setStorageValue(998899, 0)
end

    -- Events
player:registerEvent("PlayerDeath")
player:registerEvent("Tasks")
player:registerEvent("TaskLorelei")
player:registerEvent("TopFrags")
player:registerEvent("killingInTheNameOfQuestKills")
player:registerEvent("inquisitionQuestBosses")
player:registerEvent("inquisitionQuestUngreez")
player:registerEvent("IconMap")
player:registerEvent("Vermush")
player:registerEvent("lookreset")
player:registerEvent("Recompensavoc")
player:registerEvent("Recompensa")
player:registerEvent("Login")
player:registerEvent("SvargrondArenaKill")
player:registerEvent("Pythius")
player:registerEvent("ModalWindowHelper")
player:registerEvent("AnunciarMortes")
player:registerEvent("AutoLoot")
player:registerEvent("Yalahar")
player:registerEvent("BlessProtect")
player:registerEvent("Shang")
player:registerEvent("BeastEnergyElemental")
player:registerEvent("BeastFireElemental")
player:registerEvent("DropLoot")

    return true
end

 

 

Editado por Jobs (veja o histórico de edições)

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo