Ir para conteúdo
  • 0

[PEDIDO] Treinamento por 3 horas!


gynhogamer

Pergunta

Olá galerinha blz?

 

Bom venho hoje pedir a vocês um script que é o seguinte!

 

O player vai entrar no SQM pra trenar ai vai aparecer uma mensagem "Sessão de treinamento iniciada! Você tem 3 horas de treino."

 

Ai o player pode até mesmo dar exit que o personagem vai ficar ali por 3 horas e quando esse tempo acabar ele seria teletransportado para o templo de Thais!

 

Quero para por em meu servidor Global para os caras não ficarem de BOT o dia todo nos trainers...

 

Se quiserem visitar meu servidor aqui está o site!

http://tbx.servegame.com/

 

Um grande abraço galerinha vlw!!

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Em config.lua, procure por isso:

 

 
   idleWarningTime
   idleKickTime 

 

Troque por:

 

    -- Limits
   idleWarningTime = 3* 60 * 50 * 1000
   idleKickTime = 3* 60 * 60 * 1000

 

E em data/movements/scripts, crie um arquivo chamado steptrainer.lua e adicione dentro:

 

 

function onStepIn(cid, item, pos)

doPlayerSendTextMessage(cid,27,"Sessão de treinamento iniciada! Você tem 3 horas de treino.")

addEvent(temple,3*60*60*1000)

end

 

function temple()

eventtrainer = addEvent(temple,3*60*60*1000)

doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)))

doPlayerSendTextMessage(cid,27,"Sessão de treinamento terminada. Você foi teleportado para o templo!")

end

 

function onStepOut(cid, item, pos)

stopEvent(eventtrainer)

return true

end

 

 

Em movements.xml adicione essa tag:

<movevent type="StepIn" actionid="46399" event="script" value="steptrainer.lua"/>

 

Agora em todos SQMS fica pra treinar, você adiciona ACTIONID 46399 pelo RME :)


Link para o comentário
Compartilhar em outros sites

  • 0

Em config.lua, procure por isso:

 

idleWarningTime
idleKickTime 

 

Troque por:

 

	-- Limits
idleWarningTime = 3* 60 * 50 * 1000
idleKickTime = 3* 60 * 60 * 1000

 

E em data/movements/scripts, crie um arquivo chamado steptrainer.lua e adicione dentro:

 

 

function onStepIn(cid, item, pos)

doPlayerSendTextMessage(cid,27,"Sessão de treinamento iniciada! Você tem 3 horas de treino.")

addEvent(temple,3*60*60*1000)

end

 

function temple()

eventtrainer = addEvent(temple,3*60*60*1000)

doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)))

doPlayerSendTextMessage(cid,27,"Sessão de treinamento terminada. Você foi teleportado para o templo!")

end

 

function onStepOut(cid, item, pos)

stopEvent(eventtrainer)

return true

end

 

 

Em movements.xml adicione essa tag:

<movevent type="StepIn" actionid="46399" event="script" value="steptrainer.lua"/>

 

Agora em todos SQMS fica pra treinar, você adiciona ACTIONID 46399 pelo RME :)


 

Amigo não está funcionando! Deixei um knight nos trainers e dei exit e no final de 3 horas ele não foi teletransportado! Teria como arrumar isso?

 

EDIT: Agora ele não está logando nos trainers como se tivesse um sistema de anti login :s

Editado por gynhogamer
Link para o comentário
Compartilhar em outros sites

  • 0

Tente trocar por:

 

 

function onStepIn(cid, item, pos)

doPlayerSendTextMessage(cid,27,"Sessão de treinamento iniciada! Você tem 3 horas de treino.")

addEvent(temple,3*45*60*1000)

end

 

function temple()

eventtrainer = addEvent(temple,3*60*60*1000)

doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)))

doPlayerSendTextMessage(cid,27,"Sessão de treinamento terminada. Você foi teleportado para o templo!")

end

 

function onStepOut(cid, item, pos)

stopEvent(eventtrainer)

end

 

 

E em movements.xml adicione essa tag também:

 

<movevent type="StepOut" actionid="46399" event="script" value="steptrainer.lua"/>

Se não der certo, me fale a pos do seu templo

Editado por Roksas
Link para o comentário
Compartilhar em outros sites

  • 0

Não funcionou! O player não é teletransportado para o templo no final das 3 horas e ele não desloga...

 

As posições do templo são essas: Position: [X: 32369] [Y: 32241] [Z: 7].

Editado por gynhogamer
Link para o comentário
Compartilhar em outros sites

  • 0

fiz um aqui, mas nem testei (fiz direto pelo notepad, se der erro me avisa)

 

function onStepIn(cid, item, pos)
if isPlayer(cid) then
doPlayerSendTextMessage(cid,27,"Daqui há 3 horas você será mandado para o templo!")
addEvent(temple,60*1000 * 60 * 3,cid)
end
return true
end

function temple(cid)
 if isCreature(cid) then
	  local pos = getCreaturePosition(cid)
	  pos.stackPos = 0
	  if getTileThingByPos(pos).actionid == 46399 then
 doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)))
 doShowTextDialog(cid,2160, "Suas 3 horas de treino terminaram. Mexa-se ou será kikado em 15 segundos.")
					   addEvent(function()
						if isCreature(cid) then
						   if getCreaturePosition(cid) == getTownTemplePosition(getPlayerTown(cid)) then
						   doRemoveCreature(cid)
						   end
						end
						 return true
						end,15*1000)
	  end
 return true
 end
return true
end

 

movements.xml

<movevent type="StepIn" actionid="46399" event="script" value="steptrainer.lua"/>

 

config.lua

    -- Limits
    idleWarningTime = 3* 60 * 50 * 1000 + 30*1000*60
    idleKickTime = 3* 60 * 60 * 1000 + 30*1000*60
-- kikar em 3 horas e meia, pro script nao kikar antes

Coloque a AID 46399 em todos os tiles que o player fica para treinar...

PS: esse nao tem stepOut! , é bem automatico..

 

Só nao entendi uma coisa, o player só vai poder treinar 3 horas por dia, ou a cada 3 horas ele ser expulso dos trainers, mas poderá voltar normalmente? (tipo bronson server).. [fiz do segundo jeito, mas é facil arrumar pra treinar só 3 horas por dia]

Editado por DrakyLucas
Link para o comentário
Compartilhar em outros sites

  • 0

Mas quando entrou no treiner pelo menos a imagem apareceu? Se não, ve se tem erro distro e se voce pos as action id corretamente :)

 

function onStepIn(cid, item, pos)
doPlayerSendTextMessage(cid,27,"Sessão de treinamento iniciada! Você tem 3 horas de treino.")
addEvent(temple,3*45*60*1000)
end

function temple()
eventtrainer = addEvent(temple,3*49*60*1000)
doTeleportThing(cid,{x=32369,y=32241,z=7})
doPlayerSendTextMessage(cid,27,"Sessão de treinamento terminada. Você foi teleportado para o templo!")
end

function onStepOut(cid, item, pos)
stopEvent(eventtrainer)
end

 

TENTE ESSE

Link para o comentário
Compartilhar em outros sites

  • 0

fiz um aqui, mas nem testei (fiz direto pelo notepad, se der erro me avisa)

 

function onStepIn(cid, item, pos)
if isPlayer(cid) then
doPlayerSendTextMessage(cid,27,"Daqui há 3 horas você será mandado para o templo!")
addEvent(temple,60*1000 * 60 * 3,cid)
end
return true
end

function temple(cid)
 if isCreature(cid) then
	  local pos = getCreaturePosition(cid)
	  pos.stackPos = 0
	  if getTileThingByPos(pos).actionid == 46399 then
 doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)))
 doShowTextDialog(cid,2160, "Suas 3 horas de treino terminaram. Mexa-se ou será kikado em 15 segundos.")
					   addEvent(function()
						if isCreature(cid) then
						   if getCreaturePosition(cid) == getTownTemplePosition(getPlayerTown(cid)) then
						   doRemoveCreature(cid)
						   end
						end
						 return true
						end,15*1000)
	  end
 return true
 end
return true
end

 

movements.xml

<movevent type="StepIn" actionid="46399" event="script" value="steptrainer.lua"/>

 

config.lua

	-- Limits
	idleWarningTime = 3* 60 * 50 * 1000 + 30*1000*60
	idleKickTime = 3* 60 * 60 * 1000 + 30*1000*60
-- kikar em 3 horas e meia, pro script nao kikar antes

Coloque a AID 46399 em todos os tiles que o player fica para treinar...

PS: esse nao tem stepOut! , é bem automatico..

 

Só nao entendi uma coisa, o player só vai poder treinar 3 horas por dia, ou a cada 3 horas ele ser expulso dos trainers, mas poderá voltar normalmente? (tipo bronson server).. [fiz do segundo jeito, mas é facil arrumar pra treinar só 3 horas por dia]

 

Vou testar aqui!

 

Sim é para ser apenas quicado dos trainers a cada 3 horas podendo voltar normalmente! Isso é para os caras não ficarem dias de bot nos trainers tirando a vantagem de quem não gosta de BOT! (:

 

Quando eu testar edito aqui se funcionou ou não abraços...

Link para o comentário
Compartilhar em outros sites

  • 0

PS: se quiser testar com menos tempo, pra nao esperar as 3 horas, mude essa linha:

addEvent(temple,60*1000 * 60 * 3,cid)

 

pro tempo que vc quiser (1000 = 1 segundo, 1000*60 = 1 minuto, e por ai vai)

 

 

ee um conselho, a ideia sua eu acho meio fail...

seria melhor colocar um globalevent rodando de hora em hora fazendo todo mundo que ta nos trainers serem teleportados, todos de uma vez.. dae os trainers esvaziam e a pessoa vai te que volta de hora em hora :p

Editado por DrakyLucas
Link para o comentário
Compartilhar em outros sites

  • 0

PS: se quiser testar com menos tempo, pra nao esperar as 3 horas, mude essa linha:

addEvent(temple,60*1000 * 60 * 3,cid)

 

pro tempo que vc quiser (1000 = 1 segundo, 1000*60 = 1 minuto, e por ai vai)

 

 

ee um conselho, a ideia sua eu acho meio fail...

seria melhor colocar um globalevent rodando de hora em hora fazendo todo mundo que ta nos trainers serem teleportados, todos de uma vez.. dae os trainers esvaziam e a pessoa vai te que volta de hora em hora :p

 

Oque eu ponho na linha addEvent(temple,60*1000*60*3,cid) para testar em 1 minuto?

 

Sou uma negação em scripts :s

 

E você tem um script para mandar todos para o templo a cada 3 horas? se tiver me interesaria (:

Editado por gynhogamer
Link para o comentário
Compartilhar em outros sites

  • 0

então, nao tenho agora, mas amanha por volta de meio dia eu faço se quiser.. (agora vou dormir q amanha tenho prova (simulado vestibular) no objetivo kk)

 

é facil fazer, o dificil vai ser vc colocar as posições dos trainers (pq n da pra tratar globalevent com as actionIds kk)

Link para o comentário
Compartilhar em outros sites

  • 0

que erro que da no console?

qual a distro sua?

é para funcionar normal ...

 

vc nao ta esquecendo de arrumar as AID's no map? ou de colocar no xml?

tente mudar essa linha

doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)))

 

para essa linha

 

doTeleportThing(cid,{x=32369,y= 32241,z= 7})

 

 

e essa linha

 

if getCreaturePosition(cid) == getTownTemplePosition(getPlayerTown(cid)) then

 

para essa linha

if getCreaturePosition(cid) == {x=32369,y= 32241,z= 7} then

Editado por DrakyLucas
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...