BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

necesito un scrip para el agua

necesito un scrip para el agua

#1 necesito un scrip para el agua el Miér Ene 28, 2015 1:17 pm

God angel


Miembro
Hola amigos de blacktibia necesito un scrip que al entar al agua se convierta en nadador y al salir del agua vuelva a como estaba es para una picina.

en este id los player caminan sobre el agua y al loquiar sobre ella se convierte en nadador
pero asi no me sirve

ABREME:
You see shallow water.
ItemID: [4825]

Gracias por su ayuda

#2 Re: necesito un scrip para el agua el Miér Ene 28, 2015 5:57 pm

Belerofonte


Administrador
Servidor/Data/Movements/... Movements.xml
<movevent type="StepIn" actionid="9201;9202;9203;9204;9205;9206;9207;9208" event="script" value="SwimmingTiles.lua"/>

Ésos, o lo ActionID que gustes(que no estés usando ya en otro script) son los que has de poner en los tiles que hayan alrededor del agua siguiendo este orden:
Spoiler:
[Tienes que estar registrado y conectado para ver esa imagen]
9201: Al NORTE del agua.
9202: Al NODOESTE del agua.
9203: Al OESTE del agua.
9204: Al SUDOESTE del agua.
9205: Al SUR del agua.
9206: Al SUDESTE del agua.
9207: Al ESTE del agua.
9208: Al NODESTE del agua.
(Obviamente el tamaño de la piscina no importa)

Los cuales también han de hallarse en la tabla(BORDERS) del siguiente script...

Servidor/Data/Movements/Scripts/... SwimmingTiles.lua
Código:
 local BORDERS = {
    [9201] = {into = SOUTH, back = NORTH}, -- Al NORTE del agua. ^
    [9202] = {into = SOUTHEAST, back = NORTHWEST}, -- Al NODOESTE del agua. ^<
    [9203] = {into = EAST, back = WEST}, -- Al OESTE del agua. <
    [9204] = {into = NORTHEAST, back = SOUTHWEST}, -- Al SUDOESTE del agua. v<
    [9205] = {into = NORTH, back = SOUTH}, -- Al SUR del agua. v
    [9206] = {into = NORTHWEST, back = SOUTHEAST}, -- Al SUDESTE del agua. v>
    [9207] = {into = WEST, back = EAST}, -- Al ESTE del agua. >
    [9208] = {into = SOUTHWEST, back = NORTHEAST} -- Al NODESTE del agua. ^>
  }

  local outfit = {lookType = 267, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}
function onStepIn(cid, item, lastPosition, fromPosition, toPosition)
    if (not isPlayer(cid)) then
        doTeleportThing(cid, fromPosition, false)
      return true
    end

  local border = BORDERS[item.actionid]
    if(not border) then
      return false
    end

  local position = getThingPos(item.uid)
  local newPos = getPosByDir(getThingPos(cid), border.into, 1)
    if(hasCondition(cid, CONDITION_OUTFIT) and getCreatureOutfit(cid).lookType == outfit.lookType) then
        doMoveCreature(cid, border.back)
        doRemoveCondition(cid, CONDITION_OUTFIT)

        if (not isPlayerGhost(cid)) then
            doSendMagicEffect(fromPosition, CONST_ME_LOSEENERGY)
            doSendMagicEffect(position, CONST_ME_POFF)
        end

     else
       doMoveCreature(cid, border.into)

        if (not isPlayerGhost(cid)) then
            doSendMagicEffect(position, CONST_ME_POFF)
            doSendMagicEffect(newPos, CONST_ME_WATERSPLASH)
        end

       doRemoveConditions(cid, true)
       doSetCreatureOutfit(cid, outfit, -1)
    end

    if (not isPlayerGhost(cid)) then
        doSendDistanceShoot(fromPosition, lastPosition, CONST_ANI_EXPLOSION)
    end

  return true
end

Zona a editar:
 local BORDERS = {
   [9201] = {into = SOUTH, back = NORTH}, -- Al NORTE del agua. ^
   [9202] = {into = SOUTHEAST, back = NORTHWEST}, -- Al NODOESTE del agua. ^<
   [9203] = {into = EAST, back = WEST}, -- Al OESTE del agua. <
   [9204] = {into = NORTHEAST, back = SOUTHWEST}, -- Al SUDOESTE del agua. v<
   [9205] = {into = NORTH, back = SOUTH}, -- Al SUR del agua. v
   [9206] = {into = NORTHWEST, back = SOUTHEAST}, -- Al SUDESTE del agua. v>
   [9207] = {into = WEST, back = EAST}, -- Al ESTE del agua. >
   [9208] = {into = SOUTHWEST, back = NORTHEAST} -- Al NODESTE del agua. ^>
 }

Y si quieres que las demás criaturas como Npc o Monstruos puedan transpasar esos tiles, pues borras la línea 15:
Código:
        doTeleportThing(cid, fromPosition, false)



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]

#3 Re: necesito un scrip para el agua el Jue Ene 29, 2015 1:31 pm

God angel


Miembro
gracias bro justo lo que buscaba me sirvio como te doy rep?

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 .