RevScript Waypoints con Areas

Alex

Miembro del equipo
Webdesigner
LV
58
 
Awards
38
Hola,

Aquí les traigo un script ( no sé de quién ) es viejo que lo tenía en un 12.10 y funciona en 12.72 probado, hay que indicar subareas,

El nombre, name, será el nombre de la categoria, ejemplo en Thais, si quieres tener 2 TPS distintos uno en DP y otro en Temple, entonces indicas en el orden las posiciones.
Se pueden agregar muchas más líneas, no olvidar cambiar el local lastid = con la ID ultima del paquete de waypoints.

El script se pone en data/scripts/

Código Lua:
-- Config
local tplist = {
    [25555] = {name = "Cyclopes", positions = {{x = 31832, y = 32377, z = 8},{x = 32017, y = 32357, z = 1}}, subareas = {'Cyclops Cave', 'Cyclops Isle'}},
    [25556] = {name = "", positions = {{x = 31894, y = 32434, z = 7}}, subareas = {}}
}
local firstid = 25555
local lastid = 25556

-- Config End
local teleports = MoveEvent()
function teleports.onStepIn(player, item, position, fromPosition)
    if not player:isPlayer() then
        return false
    end
 
    local tp = tplist[item.actionid]
    local quantity = table.getn(tp.positions)
 
    player:registerEvent("Teleport_Modal_Window")
 
    local title = "Teleport"
    local message = "List of ".. tp.name .." Spawns"
    
    local window = ModalWindow(item.actionid, title, message)
    window:addButton(100, "Go")
    window:addButton(101, "Cancel")
    
    for i = 1, quantity do
        if tp.subareas[i] == nil then
            window:addChoice(i,"".. tp.name .." ".. i .."")
        else
            window:addChoice(i,"".. tp.subareas[i] .."")
        end
    end
 
    window:setDefaultEnterButton(100)
    window:setDefaultEscapeButton(101)
 
    if tp and quantity < 2 then
        player:unregisterEvent("Teleport_Modal_Window")
        player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
        player:teleportTo(tp.positions[1])
        player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
    else
        window:sendToPlayer(player)
    end
    return true
end

for j = firstid, lastid do
    teleports:aid(j)
end

teleports:type("stepin")
teleports:register()

local modalTp = CreatureEvent("Teleport_Modal_Window")
modalTp:type("modalwindow")

function modalTp.onModalWindow(player, modalWindowId, buttonId, choiceId)
    player:unregisterEvent("Teleport_Modal_Window")
    if modalWindowId >= firstid and modalWindowId <= lastid then
        if buttonId == 100 then
            player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
            player:teleportTo(tplist[modalWindowId].positions[choiceId])
            player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
            if tplist[modalWindowId].subareas[choiceId] == nil then
                player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Teleported to '.. tplist[modalWindowId].name ..' '.. choiceId ..'.')
            else
                player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Teleported to '.. tplist[modalWindowId].subareas[choiceId] ..'.')
            end
        end
    end
    return true
end

modalTp:register()
 
Última edición:

Miku

Miembro
LV
7
 
Awards
5
hola Alex dentro de la data/scripts/ que nombre debo ponerle al script?
y si pongo este script ya funcionara el piso con ID.
o sea que el player pise un lugar y le aparezca un modal menu en su pantalla y que el mismo elija la ubicacion a la cual ir
 

Alex

Miembro del equipo
Webdesigner
LV
58
 
Awards
38
hola Alex dentro de la data/scripts/ que nombre debo ponerle al script?
y si pongo este script ya funcionara el piso con ID.
o sea que el player pise un lugar y le aparezca un modal menu en su pantalla y que el mismo elija la ubicacion a la cual ir
Data scripts , significa que lo puedes poner en donde quieras y llamar el script como quieras no por fuerza debes de ponerlo en un sitio u otro , al ser un onStepIn, es una action lo puedes poner en data/scripts/actions y funciona de la siguiente forma , el 25555 es la aid que pondrás en el suelo número 1 y el 25556 en el suelo 2, donde le pongas el nombre el ejemplo dice cyclopes entonces cerca de cyclopes y el segundo por ejemplo templo de Thais creas una baldosa que se distinga para que se vea, pero también lo puedes esconder para hacer algo que descubrir.
 
Arriba