Ir para conteúdo

Training Room V1.0


tibiaa4e

Posts Recomendados

creditos: Alreth do otfans

consiste em uma sala

trainingscript15al.jpg

assim

ai só entra 1 pessoa na sala

e fika sem risco de pks

code

function onUse(cid, item, frompos, item2, topos)

-- <beginning> Training Room script by Alreth.

-- Version 1.0, last edited 2006-06-02 17:39

-- Beginning of editable Variabels

    aidNor = 4211 -- Action id for door where training room is north of door

    aidSou = 4212 -- Action id for door where training room is south of door

    aidWes = 4213 -- Action id for door where training room is west of door

    aidEas = 4214 -- Action id for door where training room is east of door

-- End of editable Variabels

   

    emptyRoom = true

    charPos = getPlayerPosition(cid)

   

    if (item.actionid == aidNor) then

        if (charPos.y < frompos.y) then

            othersidePos = {x=frompos.x, y=frompos.y+1, z=frompos.z}

        else

            othersidePos = {x=frompos.x, y=frompos.y-1, z=frompos.z, stackpos=253}

            things = getThingfromPos(othersidePos)

            if (things.itemid == 1) then

                if (getPlayerLevel(things.uid) > 0) then

                    emptyRoom = false

                end

            end

        end

       

    elseif (item.actionid == aidSou) then

        if (charPos.y > frompos.y) then

            othersidePos = {x=frompos.x, y=frompos.y-1, z=frompos.z}

        else

            othersidePos = {x=frompos.x, y=frompos.y+1, z=frompos.z, stackpos=253}

            things = getThingfromPos(othersidePos)

            if (things.itemid == 1) then

                if (getPlayerLevel(things.uid) > 0) then

                    emptyRoom = false

                end

            end

        end

       

    elseif (item.actionid == aidEas) then

        if (charPos.x > frompos.x) then

            othersidePos = {x=frompos.x-1, y=frompos.y, z=frompos.z}

        else

            othersidePos = {x=frompos.x+1, y=frompos.y, z=frompos.z, stackpos=253}

            things = getThingfromPos(othersidePos)

            if (things.itemid == 1) then

                if (getPlayerLevel(things.uid) > 0) then

                    emptyRoom = false

                end

            end

        end

       

    elseif (item.actionid == aidWes) then

        if (charPos.x < frompos.x) then

            othersidePos = {x=frompos.x+1, y=frompos.y, z=frompos.z}

        else

            othersidePos = {x=frompos.x-1, y=frompos.y, z=frompos.z, stackpos=253}

            things = getThingfromPos(othersidePos)

            if (things.itemid == 1) then

                if (getPlayerLevel(things.uid) > 0) then

                    emptyRoom = false

                end

            end

        end

       

    end

   

    if (emptyRoom == true) then

        doTeleportThing(cid, othersidePos)

        doSendMagicEffect(charPos, 2)

        doSendMagicEffect(frompos, 12)

        doSendMagicEffect(othersidePos, 10)

       

    else

        doPlayerSendTextMessage(cid, 22, "This room is currently occupied. Please pick another or wait until the player leaves.")

    end

-- <end> Training Room script by Alreth.

    return 1

end

e em actions.xml add:

<!-- training room-doors, beginning -->

    <action actionid="4211" script="training_room.lua" />

    <action actionid="4212" script="training_room.lua" />

    <action actionid="4213" script="training_room.lua" />

    <action actionid="4214" script="training_room.lua" />

    <!-- training room-doors, end -->

para funcionar corretamente adicione actiosn id nas door como na foto

trainingscript26jz.jpg

comentem

flws :bye:

Link para o comentário
Compartilhar em outros sites

sem querer me gabar mais tenho uma 100000 vezes melhor serio mesmo essa ai é pessima mais o trabalho foi obrigado por mas esse post

aaaaa não serio melhor add as portas no arquivo door na pasta data?

Link para o comentário
Compartilhar em outros sites

sem querer me gabar mais tenho uma 100000 vezes melhor serio mesmo essa ai é pessima mais o trabalho foi obrigado por mas esse post

aaaaa não serio melhor add as portas no arquivo door na pasta data?

-----------------------edit------------------

não sei oque houve mais puis 2 posts sem querer não sei como pagar

[[sugestão: butão para eu poder excluir meus posts]]

Link para o comentário
Compartilhar em outros sites

gostei muito porem eu uso um modo muito mais simples sem precisar de codigo nenhum ^^

vo postar uma foto aqui depois que to sem tempo tudo explicadinho

abco

aizen

EDIT

esqueci de dizer essa sua versao para treinamento tem um problema: se por acaso tem alguem dentro da sala treinando afk e mata o treinandor, quando alguem loga no mesmo local, podera matar...

vo tentar explicar melhor:

um player esta treinando e o server cai ou e kikado por muito tempo afk.

agora otro player esta no mesmo lugar treinando e mata o treinador.

se o primeiro player entrar, ele tomara o lugar do treinador e alem de estar preso, os dois podem atacar um ao outro.

EDIT 2

como prometi ta aqui como fiz no meu ots, so me desculpem a qualidade pois tive que mudar para poder fazer upload... =/

lugardetreinamento2xq4.png

Link para o comentário
Compartilhar em outros sites

Este método é legal, porém isso faz com que as salas de treino continuem as mesmas de sempre. Pequenas e sem graça...

Eu fiz um modo que poderá entrar de 1 a 3 players num Training Room.

Após eles entrarem ninguém mais entra.

simplelq0.jpg

Akele teleport irá levar para uma sala de treino onde o player treinará à vontade.

Nesta sala haverá outro teleport que o trazerá de volta para a sala da alavanca.

Fácil não? o.O

function onUse(cid, item, frompos, item2, topos)

itempos = {x=90, y=39, z=8, stackpos=1}

itemid = 1546

item3 = getThingfromPos(itempos)

item2pos = {x=88, y=41, z=8, stackpos=1}

item2id = 1547

item4 = getThingfromPos(item2pos)

if item.itemid == 1945 then

doPlayerSendTextMessage(cid,22,"Você lacrou a sala de treinamento 1.")

doTransformItem(item.uid,1946)

doRemoveItem(item3.uid,1)

doCreateItem(item2id,1,item2pos)

elseif item.itemid == 1946 then

doPlayerSendTextMessage(cid,22,"Você liberou a sala de treinamento 1.")

doTransformItem(item.uid,1945)

doRemoveItem(item4.uid,1)

doCreateItem(itemid,1,itempos)

end

return 1

end

Só trocar a coordenada...

Colocar isso em .lua na pasta Actions>Scripts~

E colocar uma tag no .xml das actions~

*Rocksody*

Eu até tinha pensado nesse seu método,mas Mage e Pallys atacariaum do otro lugar que tbm não tem Pz... Me intende?

---

Eu gostei desse system de dizer que ta ocupado e tal...

Intaum inventei uma coisinha =)

É assim:

Tem uma sala livre igual a primera da screenshot.

Só que ao invés de grades ela tem portas que teleportaum pro otro lado.

Aih vc entra e puxa uma alavanca que summona um monster na frente da porta.

Um monster edited claro. Vc põe para ele não se mecher e põe nas Voice Sentences Sala Ocupada ou qualquer coisa assim... E o nome vc escolhe né...

Põe Hp 1 Arm:0 Def:0

Aih quando o cara quiser sair eh soh matar...

Se tiver alguém interessado nisso eu libero as actions...

Yours Thy.

Link para o comentário
Compartilhar em outros sites

sãop sistemas muito boms fiquei confuso não sei qual usar em meu server agora :p.

 

 

 

escolhe o do tibiaa4e mesmo porque o do Thyranic é ruim e não funciona!

caso o player entra la se tranque e logue???? como que fica? a porta vai tar fexada

Link para o comentário
Compartilhar em outros sites

olha esse que eu postei...

simples e facil

-voce me pergunta 3 monks?

-é 3 monk !

-e oque o monk la de traz vai fazer?

-é simples voce ponhe o monk para tacar flachas e bater com a mão

ai os que tiverem por perto vão te bater e os de longe tacão flexas

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...