• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    Caste Guild owner

    Compartir:

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

    1default Caste Guild owner Dom Ago 22, 2021 8:17 pm

    ioke

    ioke
    Miembro
    Miembro
    Descripcion escribió:hace tiempo vi un server en el que en la entrada del castillo habia un libro dnd te decia la guild que habia dominado el castillo no hacia falta que fueras a la web he intentado hacer un action pero no me sale a ver si me podeis ayudar yo he hecho este action.

    Código:
    function onUse(cid, item, frompos, item2, topos)
      if item.itemid == 1985 then
          doPlayerPopupFYI(cid, "[Guild Owner Castle Siege]")
    db.getResult("SELECT `guild` FROM `castelo_guerra` WHERE `id` = "..getPlayerGuildId(cid)..";")
       end
       return true
    end

    no me da ningun error pero al darle al libro no me sale la guild vencedora solo me sale el texto [Guild Owner Castle Siege] y me gustaria que abajo saliese la guild vendedora pongo una imagen tmb

    Caste Guild owner 16296710
    Imagen Explicativa escribió:Imagen Explicativa: Caste Guild owner Tibiaf10
    Version del Scripts: TFs 0.4.0

    5 participantes
    http://baiakciteron.sytes.net

    2default Re: Caste Guild owner Lun Ago 23, 2021 11:03 am

    Touch Me

    Touch Me
    Miembro
    Miembro
    Una observacion xd, los scripts se leen de arriba hacia abajo
    Código:
    doPlayerPopupFYI(cid, "[Guild Owner Castle Siege]")
    db.getResult("SELECT `guild` FROM `castelo_guerra` WHERE `id` = "..getPlayerGuildId(cid)..";")
    en caso de que tu codigo estuviera correcto, igual te tiraría error ya que pusiste la ventana antes que la función de la guild.

    Prueba este
    Código:

    function guildVencedora()
        local name
        local consulta = db.getResult("SELECT `guild` FROM `castelo_guerra` ORDER BY `id` DESC;")
        if (consulta:getID() ~= -1) then
            name = tonumber(consulta:getDataInt('guild'))
        else
            return 0
        end
        return name
    end
    function onUse(cid, item, frompos, item2, topos)
       if item.itemid == 1985 then
          doPlayerPopupFYI(cid, "[Guild Owner Castle Siege] Guild:  " .. guildVencedora() .. ".")
       end
       return true
    end



    Última edición por Touch Me el Lun Ago 23, 2021 12:09 pm, editado 2 veces

    5 participantes
    http://google.com

    3default Re: Caste Guild owner Lun Ago 23, 2021 11:48 am

    ioke

    ioke
    Miembro
    Miembro
    me tira este error en consola

    Código:
    [17:47:41.262] [Error - Action Interface]
    [17:47:41.262] data/actions/scripts/other/book.lua:onUse
    [17:47:41.293] Description:
    [17:47:41.293] data/lib/004-database.lua:60: [Result:getDataInt] Result not set!
    [17:47:41.324] stack traceback:
    [17:47:41.355]  [C]: in function 'error'
    [17:47:41.355]  data/lib/004-database.lua:60: in function <data/lib/004-database.lua:58>
    [17:47:41.402]  (tail call): ?
    [17:47:41.418]  data/actions/scripts/other/book.lua:7: in function <data/actions/scripts/other/book.lua:5>



    este el del lib

    Código:
    -- This program is free software: you can redistribute it and/or modify
    -- it under the terms of the GNU General Public License as published by
    -- the Free Software Foundation, either version 3 of the License, or
    -- (at your option) any later version.
    --
    -- This program is distributed in the hope that it will be useful,
    -- but WITHOUT ANY WARRANTY; without even the implied warranty of
    -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    -- GNU General Public License for more details.
    --
    -- You should have received a copy of the GNU General Public License
    -- along with this program.  If not, see <http://www.gnu.org/licenses/>.

    -- //

    COH_PUSHTIME = 10800 -- Tempo (em segundos) de exhausted para usar o comando !gocastle - Padrão (3 horas)
    COH_AREA = {{x = 33291, y = 32935, z = 7}, {x = 33360, y = 33014, z = 7}} -- Canto superior esquerdo / inferior direito do Castle

    -- // Não mexa daqui para baixo
    COH_STATUS = 201320111714
    COH_PREPARE1 = 201320111715
    COH_PUSHSTOR = 201320111716
    COH_PREPARE2 = 201320111717

    function guildVencedora()
        local name
        local consulta = db.getResult("SELECT `guild` FROM `castelo_guerra` ORDER BY `id` DESC;")
        if (consulta:getID() ~= -1) then
            name = tonumber(consulta:getDataInt('guild'))
        else
            return 0
        end
        return name
    end

    function doCastleRemoveEnemies()

     for index, creature in ipairs(getPlayersOnline()) do
      if isInArea(getThingPos(creature), COH_AREA[1], COH_AREA[2]) then
      if getPlayerGuildName(creature) ~= getGlobalStorageValue(COH_STATUS) then
        doTeleportThing(creature, getTownTemplePosition(getPlayerTown(creature)))
      end
      end
     end
     return true
    end

    este el de movements

    Código:
     -- This script is part of Castle of Honor
    -- Copyright (C) 2013 Roksas -
    --
    -- This program is free software: you can redistribute it and/or modify
    -- it under the terms of the GNU General Public License as published by
    -- the Free Software Foundation, either version 3 of the License, or
    -- (at your option) any later version.
    --
    -- This program is distributed in the hope that it will be useful,
    -- but WITHOUT ANY WARRANTY; without even the implied warranty of
    -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    -- GNU General Public License for more details.
    --
    -- You should have received a copy of the GNU General Public License
    -- along with this program.  If not, see <http://www.gnu.org/licenses/>.

    -- //

    function onStepIn(cid, item, pos, fromPosition)
    local pos = getThingPos(cid)
     
    if item.actionid == 16203 then
        if not isPlayer(cid) then
            return true
        end
        if (getPlayerGuildId(cid) == guildVencedora()) then
            doSendMagicEffect(getThingPos(cid), 14)
            doSendAnimatedText(pos, "Welcome", math.random(1, 255))
        else
            doSendMagicEffect(getThingPos(cid), 2)
            doTeleportThing(cid, fromPosition, false)
            doPlayerSendCancel(cid, "[Castle Siege] You do not belong to the dominant guild.")
        end
      return true
     end

    if item.actionid == 16202 then
        if not isPlayer(cid) then
          return true
        end

        if getPlayerGuildId(cid) > 0 then
            if (getPlayerGuildId(cid) == guildVencedora()) then
                doPlayerSendCancel(cid, "[Castle Siege] Your guild is already dominating.")       
                return false
            end

        if (getPlayerGuildId(cid) ~= guildVencedora()) and (getPlayerLevel(cid) >= 100) then
            doPlayerSendTextMessage(cid, 20, "[Castle Siege] You and your guild are in charge, the former owners can take revenge!")
            setGlobalStorageValue(COH_PREPARE1, -1)
            setGlobalStorageValue(COH_PREPARE2, -1)
            db.query("INSERT INTO `castelo_guerra` (`guild`) VALUES (" .. getPlayerGuildId(cid) .. ");")
    doRemoveItem(getTileItemById({x = 32351, y = 32241, z = 7},1387).uid)

            doCastleRemoveEnemies()
            doBroadcastMessage("[Castle Siege] The player ["..getCreatureName(cid).."] and your guild ["..getPlayerGuildName(cid).."] are in charge of the castle, go dominate and stop it!")
        end
        else
            doSendMagicEffect(pos, 2) 
            doTeleportThing(cid, fromPosition, false)
            doPlayerSendCancel(cid, "[Castle Siege] You don't have a guild.")
        end
    return true
     end

    if item.actionid == 16200 then
      if not isPlayer(cid) then
          return true
      end
      if getPlayerGuildId(cid) > 0 then
        doSendAnimatedText(pos, "C.Siege", math.random(1, 255))
        if (getPlayerGuildId(cid) == guildVencedora()) and (getGlobalStorageValue(COH_PREPARE1) ~= getPlayerGuildName(cid)) and ((getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid))) then
            setGlobalStorageValue(COH_PREPARE1, getPlayerGuildName(cid))
            doBroadcastMessage("[Castle Siege] Heads up! The guild "..getPlayerGuildName(cid).." is trying to dominate the castle, get ready!")
        end
        else
            doSendMagicEffect(pos, 2) 
            doTeleportThing(cid, fromPosition, false)
            doPlayerSendCancel(cid, "[Castle Siege] You don't have a guild.") 
        return true
        end 
    end
     
    if item.actionid == 16201 then
        if not isPlayer(cid) then
            return true
        end
        doSendAnimatedText(pos, "C.Siege", math.random(1, 255))
        if (getPlayerGuildId(cid) == guildVencedora()) and (getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid)) then
            setGlobalStorageValue(COH_PREPARE2, getPlayerGuildName(cid))
            doBroadcastMessage("[Castle Siege] Heads up! The guild "..getPlayerGuildName(cid).." is very close to the domain, attack!")
        end
        end
        return true
    end

    5 participantes
    http://baiakciteron.sytes.net

    4default Re: Caste Guild owner Mar Ago 24, 2021 8:22 am

    [Adm] SevuOT

    [Adm] SevuOT
    Miembro
    Miembro
    Al parecer solo es necesario que obtengas el nombre del almacenamiento global en donde se guarda, cuando una guild toma el control del castillo el nombre se guarda en el almacenamiento global con la llave COH_STATUS

    puedes usar esta función para obtener el nombre de la guild vencedora
    Código:

    getGlobalStorageValue(COH_STATUS)

    si lo aplicas a tu ejemplo de codigo, quedaria asi:
    Código:

    function onUse(cid, item, frompos, item2, topos)
       if item.itemid == 1985 then
          doPlayerPopupFYI(cid, "[Guild Owner Castle Siege] " .. getGlobalStorageValue(COH_STATUS))
       return true
    end



    Si necesitas hospedaje para tu servidor usa este enlace y mira los buenos planes de Windows y Linux:
    Si tu cuenta de PayPal no esta verificada no importara, igual aceptan pagos con cuentas no verificadas.


    Caste Guild owner TRJEB8aSRYK5IulEU6ilJw
    5 participantes

    5default Re: Caste Guild owner Mar Ago 24, 2021 12:38 pm

    Morfar

    Morfar
    Miembro
    Miembro
    y alguien sabe para que aparezca automatico en la web? solo funciona si lo pongo manualmente xD

    5 participantes

    6default Re: Caste Guild owner Mar Ago 24, 2021 3:47 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:y alguien sabe para que aparezca automatico en la web? solo funciona si lo pongo manualmente xD

    ahi lo tienes

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



    Caste Guild owner YNU5B25
    5 participantes
    https://www.tibiaface.com

    7default Re: Caste Guild owner Miér Ago 25, 2021 3:22 am

    ioke

    ioke
    Miembro
    Miembro
    Touc Me ya me dio la solución lo unico que solo sale la Id en vez del nombre y he probado mil maneras pero no se colo hacer para que sea el nombre de la guild

    Código:
    function guildVencedora()
        local name
        local consulta = db.getResult("SELECT `guild` FROM `castelo_guerra` ORDER BY `id` DESC;")
        if (consulta:getID() ~= -1) then
            name = tonumber(consulta:getDataInt('guild'))
        else
            return 0
        end
        return name
    end
    function onUse(cid, item, frompos, item2, topos)
       if item.actionid == 8047 then
          doShowTextDialog(cid, 8983, "[Guild Owner Castle Siege] \n\nGuild:  " .. guildVencedora() .. ".")
       end
       return true
    end

    Caste Guild owner Sin_tz11

    5 participantes
    http://baiakciteron.sytes.net

    8default Re: Caste Guild owner Miér Ago 25, 2021 8:14 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    bien pero me podrias decir o mostrar la tabla de los guild en tu phpadmin para ver com esta estructurada



    Caste Guild owner YNU5B25
    5 participantes
    https://www.tibiaface.com

    9default Re: Caste Guild owner Miér Ago 25, 2021 9:25 am

    ioke

    ioke
    Miembro
    Miembro
    fallo mio perdon por no ponerlo

    Caste Guild owner Sin_tz12

    5 participantes
    http://baiakciteron.sytes.net

    10default Re: Caste Guild owner Miér Ago 25, 2021 9:41 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    ahora mostrame la estructura de

    castelo_guerra en tu phpadmin




    la solucion estaria en agregar una funcion mas o emnos asi va espero que te funcione


    Código:
    function getGuildNameById(id)
    local query = db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. id .. ";")
       if(query:getID() ~= -1) then
          return query:getDataString("name")
          query:free()
       end
       return LUA_ERROR
    end


    function guildVencedora()
        local name
        local consulta = db.getResult("SELECT `guild` FROM `castelo_guerra` ORDER BY `id` DESC;")
        if (consulta:getID() ~= -1) then
            name = tonumber(consulta:getDataInt('guild'))
        else
            return 0
        end
        return name
    end

    function onUse(cid, item, frompos, item2, topos)
      if item.actionid == 8047 then
          doShowTextDialog(cid, 8983, "[Guild Owner Castle Siege] \n\nGuild:  " .. getGuildNameById(guildVencedora()) .. ".")
      end
      return true
    end

    5 participantes
    https://www.tibiaface.com

    11default Re: Caste Guild owner Miér Ago 25, 2021 9:57 am

    ioke

    ioke
    Miembro
    Miembro
    Caste Guild owner Sin_tz13



    Código:
    16:4:01.427] [Error - LuaInterface::loadFile] data/actions/scripts/other/book.lua:5: 'end' expected (to close 'if' at line 3) near 'query'
    [16:4:01.442] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/other/book.lua)
    [16:4:01.454] data/actions/scripts/other/book.lua:5: 'end' expected (to close 'if' at line 3) near 'query'

    5 participantes
    http://baiakciteron.sytes.net

    12default Re: Caste Guild owner Miér Ago 25, 2021 10:05 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    prueba

    Código:

    function getGuildNameById(id)
    local query = db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. id .. ";")
      if(query:getID() ~= -1) then
          return query:getDataString("name")
          query:free()
      end
      return LUA_ERROR
    end


    function guildVencedora()
        local name
        local consulta = db.getResult("SELECT `guild` FROM `castelo_guerra` ORDER BY `id` DESC;")
        if (consulta:getID() ~= -1) then
            name = tonumber(consulta:getDataInt('guild'))
        else
            return 0
        end
        return name
    end

    function onUse(cid, item, frompos, item2, topos)
      if item.actionid == 8047 then
          doShowTextDialog(cid, 8983, "[Guild Owner Castle Siege] \n\nGuild:  " .. getGuildNameById(guildVencedora()) .. ".")
      end
      return true
    end



    Caste Guild owner YNU5B25
    5 participantes
    https://www.tibiaface.com

    13default Re: Caste Guild owner Miér Ago 25, 2021 10:34 am

    ioke

    ioke
    Miembro
    Miembro
    Código:
    [Error - LuaInterface::loadFile] data/actions/scripts/other/book.lua:6: 'end' expected (to close 'if' at line 4) near 'query'
    [16:33:46.433] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/other/book.lua)
    [16:33:46.443] data/actions/scripts/other/book.lua:6: 'end' expected (to close 'if' at line 4) near 'query'

    5 participantes
    http://baiakciteron.sytes.net

    14default Re: Caste Guild owner Miér Ago 25, 2021 10:47 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    prueba

    Código:



    function getGuildNameById(id)
    local Info = db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. id .. ";")
            if Info:getID() ~= LUA_ERROR then
            local Name= Info:getDataString("name")
                                    Info:free()
                    return Name
            end
            return LUA_ERROR
    end

    function guildVencedora()
        local name
        local consulta = db.getResult("SELECT `guild` FROM `castelo_guerra` ORDER BY `id` DESC;")
        if (consulta:getID() ~= -1) then
            name = tonumber(consulta:getDataInt('guild'))
        else
            return 0
        end
        return name
    end

    function onUse(cid, item, frompos, item2, topos)
      if item.actionid == 8047 then
          doShowTextDialog(cid, 8983, "[Guild Owner Castle Siege] \n\nGuild:  " .. getGuildNameById(guildVencedora()) .. ".")
      end
      return true
    end



    Caste Guild owner YNU5B25
    5 participantes
    https://www.tibiaface.com

    15default Re: Caste Guild owner Miér Ago 25, 2021 10:57 am

    ioke

    ioke
    Miembro
    Miembro
    Very Happy Resuelto Gracias Very Happy

    5 participantes
    http://baiakciteron.sytes.net

    16default Re: Caste Guild owner Miér Ago 25, 2021 11:02 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Tema resuelto



    Caste Guild owner YNU5B25
    5 participantes
    https://www.tibiaface.com

    Contenido patrocinado


    5 participantes

    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.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).