Ir para conteúdo
Entre para seguir isso  
Dean

Chapéu Seletor

Recommended Posts

Dean    1
Dean

Nome: Chapéu Seletor
Autor: Iurimandello
Versão: 8.4x, acredito que também funcione em 8.5.
Informações Adicionais:
Um chapéu que seleciona sua vocação, baseado no Harry Potter.

Introdução: Para quem já assistiu os filmes ou leu os livros de Harry Potter, sabe que quando os alunos chagam em Hogwarts são colocados em suas respectivas casas que são escolhidas pelo Chapéu Seletor.

 

Então, ontem eu estava sem nada para fazer e resolvi fazer um script com a mesma função do chapéu seletor.

 

Obs.:Se o seu server tem account manager, é necessário mudar em seu config.lua para o player não escolher a vocação.

 

Agora vamos ao Script:

 

Crie um arquivo chamado chapeuseletor.lua na pasta data\actions\scripts, e coloque isso dentro:

 

function onUse(cid,frompos,item2)
doPlayerSendTextMessage(cid,22,"E a sua casa vai ser...")
addEvent(script,[color=Cyan]3[/color]*1000,cid)
end
function script(cid)
local chance = math.random(1,4)
        if getPlayerVocation(cid) == 0 then        
           if chance == 1 then
             doPlayerSetVocation(cid,[color=Blue]1[/color])
             doPlayerSendTextMessage(cid,22,"[color=Red]Gryffindor![/color]")  
           elseif chance == 2 then
             doPlayerSetVocation(cid,[color=Blue]2[/color])
             doPlayerSendTextMessage(cid,22,"[color=Red]Slytherin![/color]") 
           elseif chance == 3 then
             doPlayerSetVocation(cid,[color=Blue]3[/color])
             doPlayerSendTextMessage(cid,22,"[color=Red]Hufflepuff![/color]")
           elseif chance == 4 then
             doPlayerSetVocation(cid,[color=Blue]4[/color])
             doPlayerSendTextMessage(cid,22,"[color=Red]Ravenclaw![/color]")
           end
        else
          doPlayerSendTextMessage(cid,22,"Você já foi escolhido para uma casa!")            
        end
end

Configurando:Gryffindor,Slytherin,Hufflepuff e Ravenclaw: Aqui você coloca os nomes das vocações que os players irão se transformar.

1,2,3 e 4: Aqui você muda os ids das vocações, os ids você pode verificar no arquivo vocations.xml, por exemplo, se no seu ot a vocação sorcerer for id 1, você configura assim:

doPlayerSetVocation(cid,[color=Blue]1[/color])
doPlayerSendTextMessage(cid,22,"[color=Red]Sorcerer![/color]")  

E assim respectivamente.

3: Mude para alterar o valor em segundos que ele vai esperar antes de alterar sua vocação.

 

Agora a tag xml:

<action itemid="[color=Red]118[/color]" script="chapeuseletor.lua"/>

Configurando: 118: É o id do item que fará a modificação da vocação no seu ot, no meu caso eu usei um item que criei chamado Chapéu Seletor, mas você pode utilizar outro id.

 

Bom, é isso pessoal, espero que tenham gostado, qualquer dúvida é só perguntar que tentarei resolver.

 

Espero que tenham gostado.

Editado por Dean

Compartilhar este post


Link para o post
Gpwjhlkdcf    21
Gpwjhlkdcf

O script ficou legal, mas um tanto grande.

Movido.

Compartilhar este post


Link para o post
Dean    1
Dean

Obrigado por mover Skyen, sobre ele estar grande é porque sou um pouco iniciante ainda, se você pudesse me dar umas dicas de como diminuir.

Compartilhar este post


Link para o post
Sinister    0
Sinister

O chapeu podia fazer perguntas, pra dependendo das respostas ele escolher a vocação, ia ser mais rox :P

Compartilhar este post


Link para o post
Dean    1
Dean

Boa ideia Sinister, mas acho que teria que ser feito um npc, por action acredito que não tem como fazer, se eu estiver errado me corrijam.

Compartilhar este post


Link para o post
Sinister    0
Sinister

Tem como, mas fica melhor com NPC mesmo.

Compartilhar este post


Link para o post
pejuge2    1
pejuge2

Bem, vi seu pedido ao Skyen Hasus para uma possível melhora, acho que o script fica melhor automatizado (para você que diz ser iniciante aconselho visitar os tutoriais, fasso isso a muito tempo e sempre aprendo coisas novas, não se esqueça de compartilhar conhecimentos também):

 

local chance = math.random(1,4)
local vocations = {
{"Gryffindor", 1},
{"Slytherin", 2},
{"Hufflepuff", 3},
{"Ravenclaw", 4}
}

function onUse(cid,frompos,item2)
  doPlayerSendTextMessage(cid, 22, "E a sua casa vai ser...")
  addEvent(script, 3*1000, cid)
end

function script(cid)

local efeito
local mensagem

  if getPlayerVocation(cid) == 0 then        
     efeito = CONST_ME_MAGIC_RED
     mensagem = vocations[chance][1]
     doPlayerSetVocation(cid, vocations[chance][2])
  else
     efeito = CONST_ME_POFF
     mensagem = "Você já foi escolhido para uma casa"            
  end

  doPlayerSendTextMessage(cid,22, mensagem.."!")
  doSendMagicEffect(getCreaturePosition(cid), efeito)

end

Ainda não testei, mas acho que funciona perfeitamente, note que adicionei magic effect.

Editado por pejuge2

Compartilhar este post


Link para o post
Dean    1
Dean

Obrigado pejuge, eu não havia pensado em fazer isso, e sobre o magic effect, eu havia colocado, mas começou a dar uns erros meio loucos, mas acredito que seja só o meu ot que está com bug mesmo.

Compartilhar este post


Link para o post
Pandá s2    0
Pandá s2

Bem criativo vou testar!!

 

Sou apaixonado Por harry portter heheehheehe'

Compartilhar este post


Link para o post
Hakkan    0
Hakkan

Por favor para tornar o topico melhor por favor poste fotos :D THX

Compartilhar este post


Link para o post
Warp    0
Warp

[B]em criativo mesmo :yes:

Também sou fan do Harry Potter :fist:

Continue contribuindo pra OTnet!

Compartilhar este post


Link para o post
Dean    1
Dean

Obrigado pelos comentários

 

Sou fan do Harry Potter também :D

Compartilhar este post


Link para o post
xaxinho    0
xaxinho

com fotos fica bem melhor..

Compartilhar este post


Link para o post
lulu1001    0
lulu1001

Dúvida: Sempre que eu clico no chapéu da a mesma classe com todos os chars ke ki eu faço?

Compartilhar este post


Link para o post
pejuge2    1
pejuge2

lulu1001, tente assim:

local vocations = {
{"Gryffindor", 1},
{"Slytherin", 2},
{"Hufflepuff", 3},
{"Ravenclaw", 4}
}

function onUse(cid,frompos,item2)

  doPlayerSendTextMessage(cid, 22, "E a sua casa vai ser...")
  addEvent(script, 3*1000, cid)
end

function script(cid)

local efeito
local mensagem
local chance = math.random(1,4)

  if getPlayerVocation(cid) == 0 then        
     efeito = CONST_ME_MAGIC_RED
     mensagem = vocations[chance][1]
     doPlayerSetVocation(cid, vocations[chance][2])
  else
     efeito = CONST_ME_POFF
     mensagem = "Você já foi escolhido para uma casa"            
  end

  doPlayerSendTextMessage(cid,22, mensagem.."!")
  doSendMagicEffect(getCreaturePosition(cid), efeito)

end

Editado por pejuge2

Compartilhar este post


Link para o post
lucashbl    0
lucashbl

Assim tipo axo q os players gostam d escolher suas proprias vocações mais a ideia fiko legal :D

Compartilhar este post


Link para o post
AkillesW    6
AkillesW

Acho q deveria criar 4 GUILD 1 para cada casa, e depende do q o chapeu escolher coloque o player na Guild(casa) pq vocação Gryffindor é estranho, ai ele podia ser um Wizard/Druid(ou qualiqer coisa) da Gryffindor.

Compartilhar este post


Link para o post
Dean    1
Dean

Essa foi a ideia, mas daí eu adaptei, para quem quiser colocar sorcerer, druid,etc nas vocações.

Compartilhar este post


Link para o post
lulu1001    0
lulu1001

Eu ja tentei daquele jeito e continua a mesma coisa.

Compartilhar este post


Link para o post
xinhus    0
xinhus

@lulu aki tbm ta assim , mais tipo quando eu reinicio o ot ele vem com outra casa

mais tem que arruma ainda :S

se algum scripter puder analizar ^^

quando reinicia ot ele muda a casa, mais enquanto o ot ta on fica sempre a mesma casa

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.

×