• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    Doble Exp Storage

    Compartir:

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

    1default Doble Exp Storage Lun Mar 28, 2022 3:47 am

    ioke

    ioke
    Miembro
    Miembro
    Hola buenas, quisiera saber si podrían ayudarme con un script que te de doble exp al obtener un storage, cualquier pregunta me comentáis, gracias.

    3 participantes
    http://baiakciteron.sytes.net

    2default Re: Doble Exp Storage Lun Mar 28, 2022 12:58 pm

    zerochile

    zerochile
    Miembro
    Miembro
    e_e  Laughing

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

    3 participantes
    http://venore-war.sytes.net

    3default Re: Doble Exp Storage Mar Mar 29, 2022 10:33 am

    ioke

    ioke
    Miembro
    Miembro
    Tengo un problema pensaba que usaria storage pero veo que el sistema de castillo24h es diferente no se como hacer en mi script para que funcione lo de exp x2, tu sabrias como?

    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 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)
            doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Welcome warrior of " .. getGuildNameById(guildVencedora()) .. "!")
        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 = 32374, y = 32230, 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

    3 participantes
    http://baiakciteron.sytes.net

    4default Re: Doble Exp Storage Sáb Abr 02, 2022 11:41 am

    zerochile

    zerochile
    Miembro
    Miembro
    en el script ese cambia donde dice:
    Código:
    if isPlayer(cid) and getPlayerStorageValue(cid,expConfig.storage) > 0 then

    Por esto otro:
    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

    if isPlayer(cid) and getPlayerGuildId(cid) == guildVencedora() then

    OJITO cheers
    Si es que agregaste la funcion en data/lib, no es necesario hacer esto anterior, solamente le cambias el if de storage por esto:
    Código:
    getPlayerGuildId(cid) == guildVencedora()
    Y listo... affraid

    3 participantes
    http://venore-war.sytes.net

    5default Re: Doble Exp Storage Dom Abr 03, 2022 4:54 am

    ioke

    ioke
    Miembro
    Miembro
    lo puse asi cuando te conectas te tira el mensaje pero el jugador no le da la exp x2 :S algo falla y en consola no hay error todo va bien salvo que no da doble exp

    Código:
    local expConfig, message = {
     expadd = 2, -- Te multiplicara la exp por el valor que pongas aqui.
    }

     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

    if isPlayer(cid) and getPlayerGuildId(cid) == guildVencedora() then
     rate = expConfig.expadd
     doPlayerSetExperienceRate(cid, rate)
     doPlayerSendTextMessage(cid,22,"Welcome member of " .. getGuildNameById(guildVencedora()) .. ", you will now receive the x"..expConfig.expadd.." of experience for completing the Castle Siege!") -- Mensaje para el jugador
     end
    [code][/code]



    ya lo solucione cogi otro script y lo adapte

    Código:
    function onLogin (cid)

    local rate = {}

    if getPlayerLevel(cid) > 1 then
    rate = 4.0
    end

    if isPlayer(cid) and getPlayerGuildId(cid) == guildVencedora() then
    doPlayerSetExperienceRate(cid, rate)
     doPlayerSendTextMessage(cid,22,"Welcome member of " .. getGuildNameById(guildVencedora()) .. ", you will now receive the x2 of experience for completing the Castle Siege!") -- Mensaje para el jugador
     end


    return TRUE
    end

    3 participantes
    http://baiakciteron.sytes.net

    6default Re: Doble Exp Storage Miér Abr 06, 2022 4:27 am

    ioke

    ioke
    Miembro
    Miembro
    Pero cual pusiste el mio o el que el puso?

    3 participantes
    http://baiakciteron.sytes.net

    7default Re: Doble Exp Storage Miér Abr 06, 2022 12:28 pm

    Morfar

    Morfar
    Miembro
    Miembro
    asi lo tengo y no me trabaja jejej

    Código:
    function onLogin (cid)

    local rate = {}

    if getPlayerLevel(cid) > 1 then
    rate = 6
    end

    if isPlayer(cid) and getPlayerGuildName(cid) == getGlobalStorageValue() then
    doPlayerSetExperienceRate(cid, rate)
     doPlayerSendTextMessage(cid,22,"Welcome member of " .. getGuildNameById(getPlayerGuildName()) .. ", you will now receive the x2 of experience for completing the Castle Siege!") -- Mensaje para el jugador
     end


    return TRUE
    end

    3 participantes

    Contenido patrocinado


    3 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).