Ir para conteúdo

Featured Replies

Postado

Galera, alguém pode me ajudar?

 

Gostaria de um sistema, que ao entrar no trainer, o jogador tem 'x' minutos para se mover, caso contrario ele será teleportado para 'n' posição.

Não basta apenas girar, ou dar use em item e tals, ele tem que se mexer literalmente, sair do piso e entrar novamente.

 

Versão: TFS 1.2

 

Gostaria também do treiner (criatura) na qual eu pudesse configurar sua aparência, não seria uma criatura, mas deixaria ele na forma de um item por exemplo.

 

Agradeço a quem se dispor a ajudar.

Resolvido por Bruno Minervino

Ir para solução
Postado
ao entrar no trainer, o jogador tem 'x' minutos para se mover, caso contrario ele será teleportado para 'n' posição.

istraining.lua (data\movements\scripts)

local time, key = 3, 98765 -- minutes, storage
local pos = {x = 5, y = 6, z = 7} -- position

function onStepIn(cid)
    local function isTraining(uid)
        return getPlayerStorageValue(uid, key) > 0 and doTeleportThing(uid, pos) or true
    end
    
    check = addEvent(isTraining, 1000 * 60 * time, cid)
    return setPlayerStorageValue(cid, key, 1)
end

function onStepOut(cid)
    return stopEvent(check) and setPlayerStorageValue(cid, key, -1)
end

movements.xml (data\movements)

<movevent type="StepIn" actionid="XXXXX" event="script" value="istraining.lua"/>
<movevent type="StepOut" actionid="XXXXX" event="script" value="istraining.lua"/>

PS: O actionid deve ser posto no tile dos trainers, onde os players ficam sob.

 

 

do treiner (criatura) na qual eu pudesse configurar sua aparência, não seria uma criatura, mas deixaria ele na forma de um item

No arquivo XML do monster, observe que haverá uma linha como esta:

<look type="61" head="20" body="30" legs="40" feet="50" corpse="6002"/>

Substitua-a por essa:

<look typeex="ITEMID"/>

The corrupt fear us.

The honest support us.

The heroic join us.

Postado
  • Solução

@fantomdruid,

Como você usa TFS 1.2, tenta assim:

local config = {
	time = 1, -- minutes
	str = 98765, -- storage
	pos = {x = 5, y = 6, z = 7} -- position
}

function onStepIn(creature, item, position, fromPosition)
	if not creature:isPlayer() then return false end
	local function isTraining(uid)
		local self = Player(uid)
		return self:getStorageValue(config.str) > 0 and self:teleportTo(config.pos) or true
	end
    
	check = addEvent(isTraining, config.time * 60 * 1000, creature.uid)
	return creature:setStorageValue(config.str, 1)
end

function onStepOut(creature, item, position, fromPosition)
	if not creature:isPlayer() then return false end
	return stopEvent(check) and creature:setStorageValue(config.str, -1)
end
Eu tava precisando de algo assim no meu projeto, então decidi ajudar, porém os créditos são do Wise.

Atenciosamente,

Bruno Minervino

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

Informação Importante

Confirmação de Termo