BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

(Resuelto) [Pedido] Vocation Door que da Lvl

(Resuelto) [Pedido] Vocation Door que da Lvl

#1 (Resuelto) [Pedido] Vocation Door que da Lvl el Lun Abr 11, 2016 2:49 am

lordhades92


Aprendiz
Hola gente de blacktibia.

Ire directo al punto.

Necesito un script de una puerta que pida vocacion y que al pasar te de un nivel.

Ejemplo:

Puerta que pide vocacion 4 (Knight)
Al pasarla te da un nivel (+1 Level)

simple supongo =T pero soy terrible haciendo scripts pero puedo modificarlos
Gracias


DOY +REP

Belerofonte


Administrador
¿Una puerta pedirá una sola vocation o más de una?, ¿o serán distintas puertas para cada vocation?.
¿Una vez habiéndola transpasado, se podrá volver a entrar? (Imagino que dar nivel no, ¿pero entrar o salir?)



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

lordhades92


Aprendiz
[Tienes que estar registrado y conectado para ver este vínculo] escribió:¿Una puerta pedirá una sola vocation o más de una?, ¿o serán distintas puertas para cada vocation?.
¿Una vez habiéndola transpasado, se podrá volver a entrar? (Imagino que dar nivel no, ¿pero entrar o salir?)

lo que realmente necesito es que al pasar de un nivel... puede ser tambien un teleport que al pasar de un nivel o la puerta que de el nivel al pasarla sin que pida la vocacion... o un piso que al pasar te de un nivel...

TODOS serian genial que tengan un storage para no sacarle provecho a ganar nivel cada q se pise...

Tambien podria ser un npc que le hables y te de un nivel y te transporte a cierto lugar...

espero entiendas lo que busco.

gracias

Belerofonte


Administrador
Ya me confundí ;D ¿Entonces ya, se pide vocation o no?

No busques ponérmelo fácil con tantas opciones, simplemente elije la que más te guste y quieras que haga.



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

lordhades92


Aprendiz
ok en si lo que busco es que al pasar la puerto te de un nivel pero que no se pueda volver a entrar.


Belerofonte


Administrador
Servidor/Data/Actions/... Actions.xml
Código:
<action uniqueid="7665" event="script" value="doorLevel.lua"/>

Servidor/Data/Actions/Scripts/... doorLevel.lua
Código:
 local config = {
    Door = {5103, 5104}, -- {Puerta cerrada, Puerta abierta},
    Key = 409836, -- Mismo storage Key que le pongas al de movements.
  }

function onUse(cid, item, fromPosition, itemEx, toPosition)

    if getPlayerStorageValue(cid, config.Key) ~= 1 then
        doTransformItem(item.uid, item.itemid == config.Door[1] and config.Door[2] or config.Door[1])

     else
       doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
    end

  return true
end



Servidor/Data/Movements/... Movements.xml
Código:
<movevent type="StepIn" uniqueid="7665" event="script" value="doorLevel.lua"/>
<movevent type="StepOut" uniqueid="7665" event="script" value="doorLevel.lua"/>

Servidor/Data/Movements/Scripts/... doorLevel.lua
Código:
 local config = {
    CloseDoor = 5103, -- Id de la Puerta cerrada,
    Key = 409836, -- Mismo storage Key que le pongas al de actions.
    Dir = {NORTH, NORTHEAST, NORTHWEST}, -- Tres posibles direcciones a las que el jugador puede acceder desde el umbral de la puerta hacia fuera, sin pisar las direcciones por las que ha entrado.
  }

function onStepIn(cid, item, position, fromPosition, itemEx, toPosition)

    if isPlayer(cid) then
        if getPlayerStorageValue(cid, config.Key) == 1 then
            doTeleportThing(cid, fromPosition, false)
            doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
        end
    end

  return true
end

function onStepOut(cid, item, position, fromPosition, itemEx, toPosition)

    if isPlayer(cid) then
        if isInArray(config.Dir, getDirectionTo(position, getThingPos(cid))) then
            doPlayerAddLevel(cid, 1)
            setPlayerStorageValue(cid, config.Key, 1)
        end

        doTransformItem(item.uid, config.CloseDoor)
    end

  return true
end



Respecto a la variable config.Dir del movements:
Con esto...
   Dir = {NORTH, NORTHEAST, NORTHWEST}, -- Tres posibles direcciones a las que el jugador puede acceder desde el umbral de la puerta hacia fuera, sin pisar las direcciones por las que ha entrado.
...me refiero a estas direcciones:
[Tienes que estar registrado y conectado para ver esa imagen]

O a las que pongas dependiendo de hacia donde esté orientada la puerta y hacia qué habitación deseas que entren y no puedan volver atrás.

Lo hice así, para si se da el caso en el que el jugador: abra la puerta y entre solamente al umbral de ésta, y por la razón que sea vuelva hacia atrás.

Para que en ese caso no se le dé nivel/storage. Y solamente se le proporcione si avanza hacia delante, hacia cualquiera de las direcciones que pongas.



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.

 

¿Quién está en línea?

En total hay 0 usuarios en línea: 0 Registrados, 0 Ocultos y 0 Invitado

Usuarios navegando en este foro: Ninguno

Forum Statistics

Nuestros miembros han públicado un total de posts en temas.
Actualmente hay miembros registrados.
Démosle la bienvenida al miembro más reciente,
La mayor cantidad de usuarios en línea ha sido de .