BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

[Pedido]Teleports town.

[Pedido]Teleports town.

#1 [Pedido]Teleports town. el Lun Mayo 30, 2016 9:04 pm

Pharos


Miembro
Hola comunidad disculpen, estoy pidiendo este scripts por que de verdad no está en el foro y lo necesito con urgencia hay uno parecido [Tienes que estar registrado y conectado para ver este vínculo], pero resulta que es diferente, como dice un dicho una imagen vale más que mil palabras, aquí se las dejo...
[Tienes que estar registrado y conectado para ver esa imagen]

Dejo un gracias adelantado por aquel que me ayude, soy de esos que pienso que un "Gracias" vale más que un REP.

http://www.blacktibia.org

#2 Re: [Pedido]Teleports town. el Mar Mayo 31, 2016 4:54 pm

Pharos


Miembro
@up

http://www.blacktibia.org

#3 Re: [Pedido]Teleports town. el Mar Mayo 31, 2016 11:41 pm

Noraziz


Miembro
Con town te refieres al lugar de residencia? o sea un teleport que al entrar te lleve a tu residencia ya sea town 1 o town2. Porque sinceramente en el otro post que dices que es parecido veo lo mismo que pides D;

#4 Re: [Pedido]Teleports town. el Miér Jun 01, 2016 10:04 am

Pharos


Miembro
En la huntings room tengo un teleport por los momentos de coordenads {1000, 1000, 7} que esto llevaría a la town1, pero lo que no quiero es que si estoy en la town2 me lanzo en el huntings rooms, y luego paso el teleport con las coordenadas {1000, 1000, 7} y llegaría a la town1, esto no lo quiero por lo tanto, colocaré un chequeador debajo de los teleports, para cuando si viajes a huntings room, el otro teleport que se encuentran en huntings room chequee por donde has venido y te devuelva por el lugar donde viniste me entiendes?, sé que es casi parecido pero no del todo.

[4999] = teleport que chequeara si has pasado por cualquier de los actionid de abajo y te enviará a las coordenadas correspondiente.


[5000] = { 1000, 1000, 7}
[5001] = { 1960, 1965, 6}

http://www.blacktibia.org

#5 Re: [Pedido]Teleports town. el Miér Jun 01, 2016 1:19 pm

Belerofonte


Administrador
O.o A ver si me entero... ¿esto?
[Tienes que estar registrado y conectado para ver esa imagen]

En caso afirmativo:

Código:
<movevent event="StepIn" actionid="4999; 5000; 5001" script="PortalTowns.lua"/>

Código:
local Conf = {
    HuntingPs = {x = 845, y = 984, z = 7}, -- Coordenada de la Hunting Room. / Hacia donde llevarán todos los portales de las towns.
    StorageTp = 409832, -- Storage Key que gustes. / También ha de estar libre ese mismo +1 y +2. Es decir, partiendo de 409832: hasta 409833 y este 409834.
    HuntingTp = 4999, -- ActionID del portal de la Hunting Room.
    AllElseTp = {5000, 5001}, -- {ActionID, de, cada, portal, de, las, town, que, quieras}, / Todos las que quieras, cada uno separado por una coma.
}
 
function onStepIn(cid, item, position, fromPosition, toPosition)
    if isPlayer(cid) then
        doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)

        if item.actionid == Conf.HuntingTp then
            local p = {getPlayerStorageValue(cid, Conf.StorageTp), getPlayerStorageValue(cid, Conf.StorageTp + 1), getPlayerStorageValue(cid, Conf.StorageTp + 2)}
            if (p[1] > -1 and p[2] > -1) then
                doTeleportThing(cid, {x = p[1], y = p[2], z = p[3]})
            end

         elseif isInArray(Conf.AllElseTp, item.actionid) then
            doTeleportThing(cid, Conf.HuntingPs)
            setPlayerStorageValue(cid, Conf.StorageTp, fromPosition.x)
            setPlayerStorageValue(cid, Conf.StorageTp + 1, fromPosition.y)
            setPlayerStorageValue(cid, Conf.StorageTp + 2, fromPosition.z)
        end

        doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
    end
    return true
end



Última edición por Belerofonte el Miér Jun 01, 2016 1:25 pm, editado 1 vez



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]

#6 Re: [Pedido]Teleports town. el Miér Jun 01, 2016 1:23 pm

Pharos


Miembro
[Tienes que estar registrado y conectado para ver este vínculo] escribió:O.o A ver si me entero... ¿esto?
[Tienes que estar registrado y conectado para ver esa imagen]

En caso afirmativo:

Código:
<movevent event="StepIn" actionid="4999; 5000; 5001" script="PortalTowns.lua"/>

Código:
local Conf = {
    HuntingPs = {x = 845, y = 984, z = 7}, -- Coordenada de la Hunting Room. / Hacia donde llevarán todos los portales de las towns.
    StorageTp = 409832, -- Storage Key que gustes. / También ha de estar libre ese mismo +1 y +2. Es decir, partiendo de 409832: hasta 409833 y este 409834.
    HuntingTp = 4999, -- ActionID del portal de la Hunting Room.
    AllElseTp = {5000, 5001}, -- {ActionID, de, cada, portal, de, las, town, que, quieras}, / Todos las que quieras, cada uno separado por una coma.
}
 
function onStepIn(cid, item, position, fromPosition, toPosition)
    if isPlayer(cid) then
        doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)

        if item.actionid == Conf.HuntingTp then
            local p = {getPlayerStorageValue(cid, Conf.StorageTp), getPlayerStorageValue(cid, Conf.StorageTp + 1), getPlayerStorageValue(cid, Conf.StorageTp + 2)}
            if (p[1] > -1 and p[2] > -1) then
                doTeleportThing(cid, {x = p[1], y = p[2], z = p[3]})
            end

         elseif isInArray(Conf.AllElseTp, item.actionid) then
            doTeleportThing(cid, HuntingPos)
            setPlayerStorageValue(cid, Conf.StorageTp, fromPosition.x)
            setPlayerStorageValue(cid, Conf.StorageTp + 1, fromPosition.y)
            setPlayerStorageValue(cid, Conf.StorageTp + 2, fromPosition.z)
        end

        doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
    end
    return true
end
algo así, pero sin las coordenadas del HuntingPs = {x = 845, y = 984, z = 7},, se supone que c/u de los 4 teleports de abajo llevarán a diferentes partes, uno llevará a trainers y otros a quests y cosas así, para no colocar las coordenadas de c/u en el script esto podría colocarlo en un tile debajo del teleport, o más alante en otro tile.

http://www.blacktibia.org

#7 Re: [Pedido]Teleports town. el Miér Jun 01, 2016 11:36 pm

Belerofonte


Administrador
Código:
<movevent event="StepIn" actionid="6000; 6003; 6006; 6009" uniqueid="6000; 6003; 6006; 6009" script="TeleportsTown.lua"/>

Código:
local StorageTp = 400120 -- Storage Key que gustes.
local PortalRooms = {6000, 6003, 6006, 6009} -- UniqueIDs & ActionIDs que vayas a usar en los portales.

function onStepIn(cid, item, position, fromPosition, toPosition)
    if isPlayer(cid) then
        local pos = {
            x = getPlayerStorageValue(cid, (StorageTp + item.uid)),
            y = getPlayerStorageValue(cid, (StorageTp + item.uid) + 1),
            z = getPlayerStorageValue(cid, (StorageTp + item.uid) + 2),
        }
        if isInArray(PortalRooms, item.uid) then
            if pos.x < 1 and pos.y < 1 then
                doTeleportThing(cid, getPlayerMasterPos(cid))
                doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
                return true
            end
            doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
            doTeleportThing(cid, {x = pos.x, y = pos.y, z = pos.z})
            doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)

         elseif isInArray(PortalRooms, item.actionid) then
            setPlayerStorageValue(cid, (StorageTp + item.actionid), fromPosition.x)
            setPlayerStorageValue(cid, (StorageTp + item.actionid) + 1, fromPosition.y)
            setPlayerStorageValue(cid, (StorageTp + item.actionid) + 2, fromPosition.z)
        end
    end
    return true
end



Instrucción:
Para que funcione correctamente deberás de seguir las siguientes "reglas":
- Procura que tanto los UniqueID como los ActionID que pongas tengan los mismos números.
- Los UniqueID los tienes que poner en los portales de las zonas de servicio(trainers, tienda, depot, etc...).
- Los ActionID los tienes que poner en el suelo, debajo de los portales procedentes de cada ciudad.
- Y por último, los números que decidas poner, como mínimo deben de contarse de 3 en 3. Por ejemplo: 6000, 6003, 6006, 6009, 6012, 6015, 6018, 6021, 6024, y así sucesivamente.
Modus operandi:
Respecto al remeres, un ejemplo de cómo adjuntar la zona del Depot en 2 ciudades:
[Tienes que estar registrado y conectado para ver esa imagen]

Suponiendo que la zona inferior son las 2 ciudades, y la zona superior son las zonas de servicio...

Ciudades
En el suelo de donde estaría el portal pones un mismo ActionID en todas las ciudades.
(Quiero decir, un mismo ActionID solo para los portales que lleven al Depot en este caso. Los demás, tendrán otros ActionID distintos, como 6100, 7201, 7204, 7207, etc...).

Y encima, pones sus respectivos portales con sus mismas coordenadas que lleven al jugador junto al portal del Depot.
Como todos los portales de las ciudades poseerán las mismas coordenadas, para que no se te haga pesada su edición puedes editar un solo portal, copiar éste y pegarlo en las demás ciudades que quieras.

Zonas de servicio
En el suelo no pongas nada, esta vez será en el mismo portal. Como UniqueID le pones el mismo número de ActionID que le hayas puesto a los portales de las ciudades. No hay que editar las coordenadas de estos portales, pues se guardará las posiciones hacia donde deben teletransportar, en storages al jugador.
Previsualización:
[Tienes que estar registrado y conectado para ver esa imagen]



PD: Son las 5:33 am, estoy que me caigo :zzz: Por lo que, quizá me haya dejado algo... nu sé, mañana lo reviso.



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]

#8 Re: [Pedido]Teleports town. el Vie Jun 03, 2016 11:13 am

Pharos


Miembro
En las tienda, y en la trainers room, huntings room tengo varios tps como hago?, me saldra duplicated uniqueid xd

http://www.blacktibia.org

#9 Re: [Pedido]Teleports town. el Sáb Jun 04, 2016 11:07 am

Pharos


Miembro
@up

http://www.blacktibia.org

#10 Re: [Pedido]Teleports town. el Sáb Jun 04, 2016 12:16 pm

Belerofonte


Administrador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:En las tienda, y en la trainers room, huntings room tengo varios tps como hago?, me saldra duplicated uniqueid xd
                                 ¡Ah, qué bien! El nene no lo pudo haber mencionado antes                                  

*Cough* *cough*... ejem. Jajajaja.



Movements.xml
Código:
<movevent event="StepIn" actionid="7000; 7003; 7006; 7009" script="TeleportsTown.lua"/>

TeleportsTown.lua
Código:
local StorageTp = 400120 -- Storage Key que gustes.

local Portals = {
    Towns = {7000, 7006}, -- ActionID del portal de la ciudad. (El de arriba debe ir seguido del debajo, y contado de 3 en 3)
    Sectors = {7003, 7009}, -- ActionID de los portales de los sectores. (El de arriba debe ir seguido del debajo, y contado de 3 en 3)
}

function onStepIn(cid, item, position, fromPosition, toPosition)
    if isPlayer(cid) then

        local pos = {
            x = getPlayerStorageValue(cid, (StorageTp + item.actionid)),
            y = getPlayerStorageValue(cid, (StorageTp + item.actionid) + 1),
            z = getPlayerStorageValue(cid, (StorageTp + item.actionid) + 2),
        }

        if isInArray(Portals.Sectors, item.actionid) then
            if pos.x < 1 and pos.y < 1 then
                doTeleportThing(cid, doTeleportThing(cid, getPlayerMasterPos(cid)))
                doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
                return true
            end
            doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
            doTeleportThing(cid, {x = pos.x, y = pos.y, z = pos.z})
            doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)

         elseif isInArray(Portals.Towns, item.actionid) then
            setPlayerStorageValue(cid, (StorageTp + item.actionid + 3), fromPosition.x)
            setPlayerStorageValue(cid, (StorageTp + item.actionid + 3) + 1, fromPosition.y)
            setPlayerStorageValue(cid, (StorageTp + item.actionid + 3) + 2, fromPosition.z)
        end
    end
    return true
end



Zonas a editar:
Script:

local Portals = {
   Towns = {7000, 7006}, -- ActionID del portal de la ciudad. (El de arriba debe ir seguido del debajo, y contado de 3 en 3)
   Sectors = {7003, 7009}, -- ActionID de los portales de los sectores. (El de arriba debe ir seguido del debajo, y contado de 3 en 3)
}
Mapa:
[Tienes que estar registrado y conectado para ver esa imagen]



Recapitulando.
- Cada portal de cada Ciudad tendrá una misma coordenada expuesta en sus modificaciones dentro del Remeres como antes.
- Y los portales de los demás sectores llevarán al portal de la Ciudad de la que se proviene.
(Que no hay ganas de hacer otro gif Yao ming)



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]

#11 Re: [Pedido]Teleports town. el Sáb Jun 04, 2016 4:02 pm

Pharos


Miembro
Tengo problemas con el script, voy a town2 y me meto en trainers y luego para devolverme a town 2, y me manda a residencia.

http://www.blacktibia.org

#12 Re: [Pedido]Teleports town. Hoy a las 1:38 pm

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 .