Ir para conteúdo

Featured Replies

Postado
  • Autor

já verificou se aonde o player está tem alguma tag especial como no pvp ou protect zone?

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

  • Respostas 65
  • Visualizações 12k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • isso que vc quer é exatamente o que é o sistema. Se você separar bem as salas os players sempre vão achar que estão na mesma sala isolados dos outros. A diferença é que nesse aqui vc ainda precisa faz

  • 1- Não, a menos que vc edite a função isWalkable 2- a distancia é a partir da posição que o player irá ficar até a outra posição que o player irá ficar. Pensa assim: se não houvessem obstáculos, qn

  • local position = {x = 156, y = 45, z = 6} -- posicao da primeira pos (linha 1 coluna 1) local config = { distX= 12, -- distancia em X entre cada sala (de uma mesma linha) distY= 9, -- distancia em

Posted Images

Postado

@xWhiteWolf já verifiquei sim..  
Vou estar postando tudo certinho como estou usando e com imagens, tudo bem explicado pra facilitar..  Posso estar errando em algo simples, mesmo já tendo revisado várias vezes..
 

movements.xml

    <!-- Sistema de Trainers -->
    <movevent type="StepIn" actionid="14876" event="script" value="trainertp.lua"/>
    <movevent type="StepIn" actionid="14877" event="script" value="trainertp2.lua"/>

 

Em data/movements/scripts/trainertp.lua

2.jpg

local position = {x = 605, y = 7, z = 7} -- posicao da primeira pos (linha 1 coluna 1)

local config = {
	distX= 3, -- distancia em X entre cada sala (de uma mesma linha)
	distY= 6, -- distancia em Y entre cada sala (de uma mesma coluna)
	rX= 60, -- numero de colunas
	rY= 48 -- numero de linhas
}

local storage = 18481 -- storage que salva a ultima vez que o player entrou (pra evitar spams)

local function isWalkable(pos, creature, proj, pz)-- by Nord -- só adicione se vc já não tiver ela
    if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
    if getTopCreature(pos).uid > 0 and creature then return false end
    if getTileInfo(pos).protection and pz then return false, true end
    local n = not proj and 3 or 2
    for i = 0, 255 do
        pos.stackpos = i
        local tile = getTileThingByPos(pos)
        if tile.itemid ~= 0 and not isCreature(tile.uid) then
            if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
                return false
            end
        end
    end
    return true
end  

local function check_disponivel(npos)
	if isWalkable(npos, true, true) then
		return true
	end
return false
end

local function countdown(pos, Arraypos)
	if not check_disponivel(pos) then
		for lugares = 1, #Arraypos do				
			creature = getTopCreature(Arraypos[lugares]).uid	
			if not isCreature(creature)then 					
				doCreateMonster("Trainer", Arraypos[lugares])
				doSendAnimatedText(Arraypos[lugares], "GO!!", TEXTCOLOR_ORANGE)
				doSendMagicEffect(Arraypos[lugares], 10)
			end
		end
	end
end

local function fazQualquerCoisa(cid, pos, i, j) -- isso é o coração do nosso script, nao mexa nisso
	j = j or 0
	p = i or 0
	if p >= config.rX then
		p = 0
		j = j < config.rY -1 and j + 1 or false
	end
	if j then
		posi = {x = pos.x + ( p * config.distX), y = pos.y + (j * config.distY), z = pos.z}
		if check_disponivel(posi) then
			doTeleportThing(cid, posi)
			doSendMagicEffect(posi, 10)
			countdown(posi, {{x = posi.x - 1, y = posi.y + 1, z = posi.z}, {x = posi.x + 1 , y = posi.y + 1, z = posi.z}})
		else
			fazQualquerCoisa(cid, pos, p + 1, j)
		end
	else
		doPlayerSendCancel(cid, "Couldn't find any position for you right now.")
	end
end

function onStepIn(cid, item, pos, lastPos, fromPos, toPos, actor)
	if getPlayerStorageValue(cid, storage) - os.time() <= 0 then
		fazQualquerCoisa(cid, position)
	else
		doTeleportThing(cid, fromPos)
		doPlayerSendCancel(cid, "You gotta wait a few seconds before you can enter trainning room again")
	end
return true
end 


Em data/movements/scripts/trainertp2.lua

local npos = {x = 612, y = 642, z = 7} -- posição que ele vai ao sair da sala
local storage = 18481 -- storage que salva a ultima vez que o player entrou (pra evitar spams)

function onStepIn(cid, item, pos, lastPos, fromPos, toPos, actor)
	ArrayPos = {{x = fromPos.x - 1, y = fromPos.y + 1, z = fromPos.z}, {x = fromPos.x + 1 , y = fromPos.y + 1, z = fromPos.z}}
	for _, pos in ipairs(ArrayPos) do
		creature = getTopCreature(pos).uid	
		if isMonster(creature)then
			doSendMagicEffect(getThingPos(creature), 14)
			doRemoveCreature(creature)
		end	
	end
	doTeleportThing(cid, npos)
	doPlayerSetStorageValue(cid, storage, os.time() + 5)
return true
end 

1.jpg

Quando o player está no trainer, ele consegue atacar o trainer, mas o trainer não ataca ele..

A parte de rodar o char e comer food, eu não adicionei pois não pretendo usar por causa do otservlist..

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

Postado
  • Autor

ele não ataca pq vc tá usando o tile do depot no trainer, o monstro não ataca quem está nesse tile se não me engano. Faz o teste de tentar trocar o tile ou tentar sumonar o monstro com o gm dentro da cabine do trainer pra ver se ele ataca o player

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Postado
  • Autor

qnd vc tomou debug e relogou aonde estava o trainer? vc verificou se tem alguma propriedade no tile onde a criatura nasceu? ta muito estranho isso ://

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

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