• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Aporte] Sistema de TP por modalWindow

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1Bình chọn [Aporte] Sistema de TP por modalWindow el Jue Jul 06, 2017 12:56 pm

    Invitado


    Invitado
    Hola amigos de Tibiaface, hoy les quiero compartir unos scripts, se trata de que cuando le des click a un item ( Tp scroll ) se abre una ventana de opciones ( modal Window ) en donde podras seleccionar tu destino y teletransportarte a el.

    Bueno sin mas ni menos, primero que nada tendras que abrir el archivo ( data/creaturescripts/lib/creaturescripts.lua ) y pegan alli dentro el siguiente codigo:
    Código:

    local pointTps = {
       [1] = { name = 'Ciudad 1', action = 'nothing', pos = Position(1000, 1000, 7), cost = 0 },
       [2] = { name = 'Ciudad 2', action = 'nothing', pos = Position(100, 100, 7), cost = 0 },
       [3] = { name = 'Ciudad 3', action = 'nothing', pos = Position(100, 100, 7), cost = 0 },
       [4] = { name = 'House', action = 'house', pos = nil, cost = 100 } }

       local config = {
       tituloWin = 'Menu principal',
       messageWin = 'A donde te quieres teletransportar ?\nSevu entertainment modal windows\nElige una opcion:'
       }

       function onCreateModalWindowPointTps(table)
       local player = Player(table[1])
       local windowId = table[2]
       local window = ModalWindow(windowId, config.tituloWin, config.messageWin)
       local button = {}
       local choice = {}
       for i = 1, #pointTps do
       local msj = pointTps[i].name
       if pointTps[i].cost > 0 then
       msj = msj ..' [ '.. pointTps[i].cost ..' gps ]'
       else
       msj = msj ..' [ gratis ]'
       end
       choice[i] = window:addChoice(i, msj)
       end
       button[1] = window:addButton(1, 'Okay')
       window:setDefaultEnterButton(1)
       button[2] = window:addButton(2, 'Cancel')
       window:setDefaultEscapeButton(2)
       return window
       end

       function onModalWindowUseTp(table)
       local player = Player(table[1])
       local choiceId = table[2]
       local toPos = pointTps[choiceId].pos
       local namePos = pointTps[choiceId].name
       local cost = pointTps[choiceId].cost
       local isHouse = pointTps[choiceId].action
       if isHouse == 'house' then
       local house = player:getHouse()
       if not house then
       player:sendCancelMessage('Lo siento, pero usted tiene house.')
       return true
       end
       toPos = house:getExitPosition()
       end
       if not player:isPzLocked() then
       if player:removeMoney(cost) then
       player:teleportTo(toPos, true)
       toPos:sendMagicEffect(CONST_ME_TELEPORT)
       else
       player:sendCancelMessage('Lo siento, pero usted no tiene suficiente dinero.')
       end
       else
       player:sendCancelMessage('Lo siento, pero usted no puede usar TP con PZ.')
       end
       return true
       end

    Guardan... y ahora abrimos ( data/creaturescripts/creaturescripts.xml ) y agregan esta linea de codigo:
    Código:

    <event type="modalwindow" name="WindowTps" script="window tps.lua"/>

    Guardan... vamos a crear un archivo lua en ( data/creaturescripts/scripts/ ) lo llaman -> window tps.lua
    y pegan adentro el siguiente codigo:
    Código:

       function onModalWindow(player, modalWindowId, buttonId, choiceId)

       if modalWindowId == 200 then
       if buttonId == 1 then
       onModalWindowUseTp({player, choiceId})
       end end
       
       return true
       end

    Guardan... y ahora nos vamos a ( data/actions/scripts/ ) y creamos un archivo lua, lo llaman -> Tpscroll.lua y pegan el siguiente codigo adentro de ese archivo:
    Código:

       function onUse(player, item, fromPos, target, toPos, isHotkey)
       onCreateModalWindowPointTps({player, 200}):sendToPlayer(player)
       return true
       end

    Guardan... abren el archivo ( data/actions/actions.xml ) y agregan la siguiente linea de codigo:
    Código:

    -- itemid es la id del item que funcionara como scroll <- OJO
    <action itemid="8301" script="Tpscroll.lua" />

    Guardan... y para finalizar abriremos el archivo ( data/creaturescripts/scripts/login.lua ) y agregan esta linea de codigo:
    Código:

    -- esto hace que el player reaccione con el modal window
    player:registerEvent("WindowTps")

    Ahora a probar el modalWindow y me dicen como quedo XD
    Saludos a todos...



    Última edición por Sarah Wesker el Jue Jul 06, 2017 8:36 pm, editado 3 veces (Razón : no funcionaba pero ahora si XD)

    2Bình chọn Re: [Aporte] Sistema de TP por modalWindow el Jue Jul 06, 2017 3:16 pm

    Lordivan

    avatar
    Nuevo Miembro
    Nuevo Miembro
    Excelente si hace lo que yo queria, pero un detalle, no funciona XD
    me sale este error en consola:

    [Tienes que estar registrado y conectado para ver este vínculo]

    Ver perfil de usuario

    3Bình chọn Re: [Aporte] Sistema de TP por modalWindow el Jue Jul 06, 2017 8:38 pm

    Invitado


    Invitado
    Ya lo arregle @Lordivan, me dices porfis

    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.