Ir para conteúdo
Entre para seguir isso  
Mock

Train camp.

Recommended Posts

Mock    32
Mock

Autor:bearpaw.png

Servidor testado: TFS 0.3.1

Versao: 1.1

 

Quantas veses você ja entrou em uma sala de treiners naquele ot lagado com exp 999...x? Provavelmente você com certeza perdeu a conta.

:laugh:. Bem que tal melhorar essa Merda coisa? Que tal naverdade fazermos algo que volte-se para os mages? que tal mesmo é uma area onde os mages upam ML!!!!!!!

VC: SIIIIM!

Entao vamos lá ^^

Bom, esse script é naverdade apenas movements, nao tem action nem uma você tem apenas que colocar actionid em uma escada e na parte onde dece e uma pequena creaturescript caso queria que fique melhor e pronto.

Bom a area de preferencia tem que ser bonita, mais se quiser fazer um qadrado uniforme feio pra caralho caramba fassa.

Bom vou esboçar +/- como deve, veja na foto.

terr.png

Não vem falar do meu mapping pq nao sou mapper sou scripter.

 

Mais repare. que se a pessoa quiser sair dai ela so tem como sair pela escada, fassa algo desse jeito, com apenasu ma saida e uma entrada para depois nao dar problema. E veja que esse ground que eu usei é um usado em arenas no lgobal. deixe um ID separado para usar SÓ ai nesse lugar.

 

Bom agora você deve ir no tile circulado de vermelho e coloca-lo nele o actionid 6061, e em baixo na escada circulada de azul ponha o actionid 10102.

 

Apos isso vamos finalmente inserir o querido script do s2.

Vá em movements/movements.xml e insira as tags:

<movevent type="StepIn" actionid="10102" event="script" value="train_soc.lua"/>
<movevent type="StepOut" actionid="6061" event="script" value="train_soc.lua"/>

Agora feito isso vá em movements/scripts e crie o arquivo train_soc.lua e nele insira o seguinte script:

--[[
Script By Mock.
Você nao tem autoriação para retirar os creditos.
E para postar em outro forum ou outro lugar
]]
local esp = 120
local waitSeconds = 20
local mana = 7
local health = 1 
local function waita(cid,k)
if isPlayer(cid) == FALSE then
  return 0
end
if getPlayerStorageValue(cid, 23031) ~= k then
  setPlayerStorageValue(cid, 23032, 0)
  setPlayerStorageValue(cid, 23033, 0)
  return 0
end
if getPlayerStorageValue(cid, 23032) ~= getPlayerStorageValue(cid, 23033) then
  setPlayerStorageValue(cid, 23032, 0)
  setPlayerStorageValue(cid, 23033, 0)
return doRemoveCreature(cid)
else
doPlayerSendTextMessage(cid,25,'Senha identificada.')
end

end

local function esperandosenha(cid,k)
if isPlayer(cid) == TRUE then
   senha = math.random(100000,900000)
  setPlayerStorageValue(cid, 23032, senha)
  setPlayerStorageValue(cid, 23033, 0)
  doPlayerSetNoMove(cid, TRUE)
  doPlayerSendTextMessage(cid, 25,"Por motivos de segurança digite isto: /senha "..senha.." Você tem "..waitSeconds.." segundos.")
  addEvent(waita, waitSeconds*1000,cid,k) 
end
end

local function wait(cid,time,k)
     if isPlayer(cid) == TRUE then
         if getPlayerStorageValue(cid, 23031) ~= -1 and getPlayerStorageValue(cid, 23031) == k then
           time = time+1
           doPlayerSendCancel(cid,"Você está na arena a "..time.." segundos.")
           doCreatureAddMana(cid,mana)
           doCreatureAddHealth(cid, health)
           if getPlayerStorageValue(cid, 23030) == 1 then
              addEvent(esperandosenha, 1000,cid,k) 
              setPlayerStorageValue(cid, 23030,0)
           end         
           addEvent(wait, 1000,cid,time,k) 
        end
     end
end
function lols(cid)
if isPlayer(cid) == TRUE then
   if getPlayerStorageValue(cid, 23031) ~= -1 then
  setPlayerStorageValue(cid, 23030,1)
  addEvent(lols, 1000*600,cid)
  end 
end
end
function onStepIn(cid, item, pos)
k = math.random(1,90000) 
doPlayerSendTextMessage(cid, 25,"Entrou")
setPlayerStorageValue(cid, 23031, k)
setPlayerStorageValue(cid, 23030,0)
addEvent(lols, 1000*120,cid) 
addEvent(wait, 100,cid,0,k)   
end
function onStepOut(cid, item, pos) 
doPlayerSendTextMessage(cid, 25,"Saiu")
setPlayerStorageValue(cid, 23031,-1)
end

Agora para deixar mais butininho vá em creaturescrits/scripts/login.lua e antes de:

  return TRUE
end

Adcione o seguinte bloco:

local pos = getCreaturePosition(cid)
pos.stackpos = 0
local taaa = getThingfromPos(pos)
if taaa.itemid == 9671 then -- itemid do chao usado na arena
    doTeleportThing(cid, {x=160,y=54,z=7}) -- posição em frente a escada (fora da arena)
end

Agora repare, que caso o player logue na arena quando relogar irá sair fora dela ^^

 

Agora configure a quantidade de mana curada por segundo e HP, o tempo que o player tem pra digitar a senha e o intervalo entre-senhas.

VC: entre-senhas? Q? comofas?

 

Mwahah i'm bad, pensei nos booters tb e nao mecionei ^^

Você vai ter que adcionar uma talkaction para o player inserir uma senha para nao ser kickado do server. Ele deve falar a senha somente uma vez. Agora vamos inserir o script da senha.

 

Vá até talkactions/talkactions.xml e insira a seguinte tag:

<talkaction words="/senha" event="script" value="train.lua" />

Lembrando que diferentes versões do TFS as tags mudam entao atenção.

 

Feito a tag acima crie o script train.lua em talkactions/scripts e nele coloque o seguinte conteudo:

function onSay(cid, words, param)
local controle = getPlayerStorageValue(cid, 23032)
setPlayerStorageValue(cid, 23033, param)

if controle ~= getPlayerStorageValue(cid, 23033) then
doPlayerSendTextMessage(cid, 25,"Senha incorreta!")
else
  setPlayerStorageValue(cid, 23032, 0)
  setPlayerStorageValue(cid, 23033, 0)
  if getPlayerStorageValue(cid, 23032) ~= getPlayerStorageValue(cid, 23033) then
 doPlayerSendTextMessage(cid, 25,"Senha incorreta!")
else
doPlayerSendTextMessage(cid, 25,"Senha correta!")
end
doPlayerSetNoMove(cid, FALSE)

end
return TRUE
end

 

Feito tudo isso, reabra seu server e teste, quaisquer problemas ocm o script revise o topico para ver se nao fez nada errado, verifique as tags etc, caso nao de certo veirifque a versão do server, caso não seje nao poste simplesmente:

Aff cara naum funfo aki :(

E sim siga isso:

http://forums.otserv.com.br/f232/erros-nos-scripts-104381/

Dviritam-se :happy2:

Editado por Black Ice

Compartilhar este post


Link para o post
Aioria    0
Aioria

Uma duvida,

o Anti-bot so funciona c usar o outro script?

Obrigado

Editado por Aioria

Compartilhar este post


Link para o post
Mock    32
Mock

@aioria

Sim, naverdade seriam o mesmo script juntos.

ao entrar na arena o timer começa a rodar já.

Compartilhar este post


Link para o post
Solkyz    0
Solkyz

não entendi o que isso faz ? Oo

Compartilhar este post


Link para o post
Mock    32
Mock

@Solkyz

ler que é bom nada :S

Brimks.

é uma area de treino para mages onde a mana sobe + rapido.

Compartilhar este post


Link para o post
Dark Billie    0
Dark Billie

Legal Mock, mas o doPlayerSetNoMove() não havia sido mudado para doCreatureSetNoMove no TFS 0.3.5?

 

Abraços...!

Compartilhar este post


Link para o post
Mock    32
Mock

@Dark Billie

no caso basta você mudar ^^

Compartilhar este post


Link para o post
Eratsu    37
Eratsu

Muito legal esse sistema de subir a mana com mais rapidez. Sempre o Mock fazendo os melhores Scripts! ;]

Eu tenho uma sugestão, porque não modifica para que o mage que ainda tiver com comida na barriga a mana nao dece, quando ele estiver com fome ai a mana não enche.

Compartilhar este post


Link para o post
Everking    0
Everking

Nossa muito fera Mook! mas tem um pequeno problema aqui, no meu caso subiram 2 players na msm area de treino e o heal de mana e vida não param msm depois que voce dece a escada e sai andando, como faço para arrumar estes bugs!?

OBS:O script é muito bom meus parabens

Opa outra coissa aqui tbm começou a dar um random de senhas para digitar

Editado por Everking
Mais Bug

Compartilhar este post


Link para o post
Mock    32
Mock

@Everking

você nao instalou o script direito por isso esta dando isso, verifica la se vc coloco as 2 tags, se coloco os 2 actionids no lugar certo.

sobre as senhas, eu falie no script vc provavelmente nao leu tudo e entao por isso esta com problemas.

a senha é do script, enquanto o player esta la no campo ele pede a senha sim.

Compartilhar este post


Link para o post
leojudo    0
leojudo

Duvida: Como eu faço para mudar o pedido de senha de 120s [Eu acho que é isso] para 15m [900s] ? Tipo, pra a cada 15m pedir a senha... ?

 

Script Muito Show ! Você é muito fera cara !

Editado por leojudo

Compartilhar este post


Link para o post
leoofranca    0
leoofranca

Mock .. Aqui Eh Assim ..

Nao apareçe nenhum erro na caixa do server .. nem um mesmo..

Mas Manda Somente a primeira senha para o player..depois que ele digitou a primeira senha nao apareçe mais senhas .

 

Edit :

Eh Porque Demora .. Mas Deu Certo Mock..

Desculpa

Editado por leoofranca

Compartilhar este post


Link para o post
Mock    32
Mock

@leojudo

onde tiver la 120+time vc muda pra 900+time (e 120 é so da 1ª vez)

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×