Ir para conteúdo
Entre para seguir isso  
Delvire

Se rookando

Recommended Posts

Delvire    0
Delvire

Olá, bolei um sisteminha bem básico em que o jogador, ao chegar no level 5, é rookado. Esse script foi testado no Aries 0.4.5.

 

 

Bom, é mais que óbvio que vc vai precisar de uma rookgaard no seu mapa.

 

Vamos começar:

Primeiramente, no map editor, vá até o templo de sua cidade de main, e vá nas propriedades do SQM em que o player nasce:

imagem1uv8.jpg

 

Em seguida, em UniqueID, coloque 6675. Dê Ok e salve o mapa, mas ainda não o fexe, pq talvez vc vá precisar fazer um treco...

 

Agora, vá em data/movements/scripts e crie um arquivo LUA com o nome rookado.lua.

 

Dentro do arquivo, coloque:

function onStepIn(cid, item, pos)

 

rook = {x=264, y=604, z=7}

level = getPlayerLevel(cid)

mensagem = "You were rooked."

 

if item.uid == 6675 then

 

doSendMagicEffect(rook, 13)

end

if level <= 5 then

doPlayerSetTown(cid,6)

doPlayerSetVocation(cid,0)

doTeleportThing(cid, rook)

doPlayerSendTextMessage(cid, 21, mensagem)

end

return 1

 

 

end

° Coordenadas do templo de Rook.

° Aqui é o ID de Rookgaard, jajá eu explico isso.

° Geralmente os jogadores sem vocation possuem a ID 0

 

Vá em data/movements/movements.xml, e coloque isso:

<movevent event="StepIn" uniqueid="6675" script="rookado.lua" />

<movevent event="StepOut" uniqueid="6675" />

 

 

Como vai funcionar?

Quando o jogador for do nível 6 pro 5, ele irá nascer no templo, mas ele pisou num SQM que só podem pisar jogadores de lvl 6+ e com isso, ele é teleportado pra rook.

 

 

 

Explicando o doPlayerSetTown(cid,6)

Isso faz com o jogador se torne cidadão da cidade que tem o ID 6 que no caso do meu server, é Rookgaard. Se sua Rookgaard não tem uma ID, vamos colocar!

 

Lá no map editor, vá até o templo de rook e escolha o SQM onde o player vai nascer, em seguida, vá em Tools>Edit Towns

imagem1nw2.jpg

Pronto! Sua rook tem um ID!

 

 

 

Agora a parte ruim... eu não consegui:

-Deixar o player com level 1

-Deixar o player com ML 0

-Tirar os equips do player.

-Deixar player com 150 de HP e 0 de mana

-Deixar o player com certa quantidade de cap

Espero que tenham gostado.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Nord    2
Nord

Ótimo tutorial, muito bem explicado, acho que os últimos OTs que restaram e não tinham o sistema de ser rookado agora terá.

 

Tópico aprovado e movido.

Compartilhar este post


Link para o post
Compartilhar em outros sites
ions_29a    0
ions_29a

baum pow...

n fiz rook ainda no meu ot

agr q to pensando nisso

vo da uma olhada p ver se eu consigo remover items e ajudar aew

Compartilhar este post


Link para o post
Compartilhar em outros sites
Lukgb xD    0
Lukgb xD

Pra fika nv 1 é so mudar no acc manager, mais se vc não usa ele ai eu num sei =/

Compartilhar este post


Link para o post
Compartilhar em outros sites
PoSo    0
PoSo

Poxa, bela idéia essa de nascer e já pisar no sqm, nao tinha pensado nisso =D

então pra dexar level 1, será que daria algo como:

exp = getPlayerExperience(cid)
doPlayerAddExp(cid, -exp)

onde voce pega a experience dele e adiciona ela negativa, logo, vai subtrair

dai ele terá experiencia 0.

Não testei, nem sei se funciona, mas voce poderia testa e atualziar.

mais uma coisa, voce poderia forçar o logout do player, e abrir conexão com o banco de dados, assim voce faz os updates necessarios pra dexa ele level 1.

Quando ele voltar, já estará atualizado, e voilà ele estará realmente rooked.

lembrando, não testei !

 

Abraços ;D

Compartilhar este post


Link para o post
Compartilhar em outros sites
Delvire    0
Delvire

@PoSo

 

Na época em que fiz esse tutorial, ele era designado aos servers XML, e também já tentei subtrair a exp do player, +, n importando qual fosse o valor da exp, o jogador ficava com um nº bem estranho de exp, do tipo 200,000,000 etc.

 

Bom, mas agora servers XML já tão quase extintos, e n há com o que se preocupar, pois os mais comuns dos servers SQL já vêm com sistema de rooking

Compartilhar este post


Link para o post
Compartilhar em outros sites
PoSo    0
PoSo

O erro foi meu !

Não vi que o topico era revivido pelo nosso amigo ali em cima,

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites
DiegooooxD    0
DiegooooxD

kkkkkkkk post do delvire kkkkkkkkkk

como vai teu ot??

ah lembrei nuked by me~~

mas nao eh q o gordinho ta ligado nos negocio gostei ateh

Compartilhar este post


Link para o post
Compartilhar em outros sites
kito171    0
kito171

Bom :D

Boa Idéia

Compartilhar este post


Link para o post
Compartilhar em outros sites
MotoBoy    0
MotoBoy

bom. acho que nem adianta fala rmais.

ja´que a maioria dos servers jáestão vindo com esse sistema

mais de auquer jeito, é bom apreder XD

pra remover todos os items do player é só colocar:

for i = 1, 9 do
items = getPlayerSlotItem(cid, i)
break
end

doPlayerRemoveItem (cid, items, 1)

 

bom.. num testei.. foi uma ideia de ultima hora

mais acho que deve funcionar =P

flws~~

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×