• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Sistema] CASTLE 24HRS + AVISO GUILD DOMINATE PARA SU SITIO

    Compartir:

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

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    El evento Castle of Honor consiste en:

    - Los guild dominaran el castillo y tener acceso a los hunts
    exclusivas, para ello debe sentarse en el trono.

    - Comando !gocastle hace que el líder pueda teletransportarse
    todos los miembros de su guild en línea cerca de él,
    siempre y cuando esté en el castillo. el Comando se puede utilizar
    cada 3 horas (agotado).

    Si no utiliza el mapa proporcionado en la carpeta data / world,
    En este caso,


    Código:
    ActionID 16200 - En medio del camino hacia el castillo,
    ActionID 16201 - Cerca del castillo,
    ActionID 16202 - En el piso, trono que hace que domine,
    y ActionID 16203 - Para el paso de acceso a las
    los hunts / city exclusivos del gremio ganador.


    data/lib cree un archivo llamado CW.lua y pegue esto dentro:

    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/>.

    -- //

    COH_PUSHTIME = 10800 -- Tempo (em segundos) de exhausted para usar o comando !gocastle - Padrão (3 horas)
    COH_AREA = {{x = 11107, y = 1104, z = 7}, {x = 1109, y = 1106, 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 (guildVencedora() ~= getPlayerGuildId(cid)) then
        doTeleportThing(creature, getTownTemplePosition(getPlayerTown(creature)))
      end
      end
     end
     return true
    end 

    Data/monster cree un arquivo castleguardian.xml y pegue esto dentro, despues va pega esto en monsters.xml y adiciona esta tag
    Código:
    <monster name="Castle Guardian" file="castleguardian.xml"/>

    Código:
    <?xml version="1.0" encoding="UTF-8"?>
    <monster name="Castle Guardian" nameDescription="a castle guardian" race="blood" experience="0" speed="0" manacost="0">
      <health now="400000" max="400000"/>
      <look type="131" head="57" body="19" legs="57" feet="95" addons="1" corpse="6080"/>
      <targetchange interval="5000" chance="30"/>
      <strategy attack="100" defense="0"/>
      <flags>
        <flag summonable="0"/>
        <flag attackable="1"/>
        <flag hostile="1"/>
        <flag illusionable="0"/>
        <flag convinceable="0"/>
        <flag pushable="0"/>
        <flag canpushitems="1"/>
        <flag canpushcreatures="1"/>
        <flag targetdistance="4"/>
        <flag staticattack="90"/>
        <flag runonhealth="800"/>
      </flags>
        <attacks>
            <attack name="melee" interval="2000" min="-60" max="-180"/>
            <attack name="physical" interval="1000" chance="35" range="7" min="-205" max="-385">
                <attribute key="shootEffect" value="energy"/>
            </attack>
            <attack name="manadrain" interval="1000" chance="17" range="7" min="-205" max="-560"/>
            <attack name="speed" interval="1000" chance="12" range="7" speedchange="-600" duration="40000">
                <attribute key="areaEffect" value="redshimmer"/>
            </attack>
            <attack name="fire" interval="2000" chance="45" range="7" radius="3" target="1" min="-250" max="-420">
                <attribute key="shootEffect" value="burstarrow"/>
                <attribute key="areaEffect" value="firearea"/>
            </attack>
            <attack name="firefield" interval="1000" chance="20" range="7" radius="2" target="1">
                <attribute key="shootEffect" value="fire"/>
            </attack>
            <attack name="energy" interval="2000" chance="25" length="8" spread="0" min="-265" max="-445">
                <attribute key="areaEffect" value="energy"/>
            </attack>
            <attack name="speed" interval="6000" chance="10" range="5" speedchange="-600" duration="20000">
                <attribute key="areaEffect" value="redshimmer"/>
            </attack>
        </attacks>
      <defenses armor="1" defense="1"/>
        <elements>
            <element firePercent="100"/>
            <element energyPercent="100"/>
            <element icePercent="100"/>
            <element earthPercent="90"/>
            <element holyPercent="-25"/>
            <element physicalPercent="-33"/>
        </elements>
        <immunities>
            <immunity paralyze="1"/>
            <immunity invisible="1"/>
        </immunities>
      <summons maxSummons="2">
        <summon name="deathspawn" interval="1500" chance="0" max="0"/>
      </summons>
      <loot>
        <item id="2148" countmax="20" chance1="100000" chancemax="0"/>
      </loot>
    </monster>

    ahora nos vamos a data/mevements/scripts y crie un archivo llmado CW.lua y colque dentro

    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, "CW", math.random(1, 255))
        else
            doSendMagicEffect(getThingPos(cid), 2)
            doTeleportThing(cid, fromPosition, false)
            doPlayerSendCancel(cid, "[CASTLE WAR 24H] Você não pertence á guild dominante.")
        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 WAR 24H] Sua guild ja esta dominando.")       
                return false
            end

        if (getPlayerGuildId(cid) ~= guildVencedora()) and (getPlayerLevel(cid) >= 100) then
            doPlayerSendTextMessage(cid, 20, "[CASTLE WAR 24H] Você e sua guild estão no comando, os antigos donos podem se vingar!")
            setGlobalStorageValue(COH_PREPARE1, -1)
            setGlobalStorageValue(COH_PREPARE2, -1)
            db.query("INSERT INTO `castelo_guerra` (`guild`) VALUES (" .. getPlayerGuildId(cid) .. ");")
            doCastleRemoveEnemies()
            doBroadcastMessage("[CASTLE WAR 24H] O jogador ["..getCreatureName(cid).."] e sua guild ["..getPlayerGuildName(cid).."] estão no comando do castelo, vá dominar e impedir isso!")
        end
        else
            doSendMagicEffect(pos, 2) 
            doTeleportThing(cid, fromPosition, false)
            doPlayerSendCancel(cid, "[CASTLE WAR 24H] Você não possui uma 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, "CW", 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 WAR 24H] Atenção! A guild "..getPlayerGuildName(cid).." está tentando dominar o castelo, preparem-se!")
        end
        else
            doSendMagicEffect(pos, 2) 
            doTeleportThing(cid, fromPosition, false)
            doPlayerSendCancel(cid, "[CASTLE WAR 24H] Você não possui uma guild.") 
        return true
        end 
    end
     
    if item.actionid == 16201 then
        if not isPlayer(cid) then
            return true
        end
        doSendAnimatedText(pos, "CW", math.random(1, 255))
        if (getPlayerGuildId(cid) == guildVencedora()) and (getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid)) then
            setGlobalStorageValue(COH_PREPARE2, getPlayerGuildName(cid))
            doBroadcastMessage("[CASTLE WAR 24H] Atenção! A guild "..getPlayerGuildName(cid).." está muito próxima do domínio, ataquem!")
        end
        end
        return true
    end

    data/mevements/mevements.xml

    Código:

    <movevent type="StepIn" actionid="16200-16203" event="script" value="CW.lua"/>


    ahora nos vamos a data/talkactions/script y cree un archivo llamado CW.lua y pegue esto dentro

    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 onSay(cid, words, param)

     if getPlayerGuildLevel(cid) == GUILDLEVEL_LEADER then
      if getPlayerStorageValue(cid, COH_PUSHSTOR) < os.time() then
      if (getPlayerGuildId(cid) == guildVencedora()) then
        if isInArea(getThingPos(cid), COH_AREA[1], COH_AREA[2]) then
        if #getMembersOnline(getPlayerGuildId(cid)) > 0 then
          for index, creature in ipairs(getMembersOnline(getPlayerGuildId(cid))) do
          if (getTileInfo(getThingPos(creature)).protection ~= true) then
            return doPlayerSendCancel(cid, "[CoH] Os membros devem estar em área PZ.")
          end
          doTeleportThing(creature, getThingPos(cid))
          end
          setPlayerStorageValue(cid, COH_PUSHSTOR, os.time() + COH_PUSHTIME)
          doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "[Castle of Honor] Você teleportou seus membros, comando pode ser usado a cada "..tostring(COH_PUSHTIME / 60).." minuto(s).")
        else
          doPlayerSendCancel(cid, "[CoH] Para executar isso, sua guild deve ter 2 ou mais membros online.")
        end
        else
        doPlayerSendCancel(cid, "[CoH] Você deve estar no castelo.")
        end
      else
        doPlayerSendCancel(cid, "[CoH] Sua guild não é dona do castelo.")
      end
      else
      doPlayerSendCancel(cid, "[CoH] Você deve aguardar "..tostring(math.ceil((getPlayerStorageValue(cid, COH_PUSHSTOR) - os.time()) / 60)).." minuto(s) para usar este comando.")
      end
     else
      doPlayerSendCancel(cid, "[CoH] Você deve ser líder de uma guild para executar este comando.")
     end
     return true
    end

    function getMembersOnline(id)
     local mbr = {}

     for index, creature in ipairs(getPlayersOnline()) do
      if getPlayerGuildId(creature) == id then
      if getCreatureSkullType(creature) < 3 then
        table.insert(mbr, creature)
      end
      end                     
     end
     return mbr or #mbr
    end


    data/talkactions/script
    Código:
    <talkaction words="!castlepush;!pushmembers;!gocastle" event="script" value="CW.lua"/>

    link del mapa configurado:

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


    en la carpeta htdocs o www de su sitio se va a layouts/tibiarl o tibiacom, crea un archivo llamado widget_warcastle.php y pega dentro esto

    Código:
     <?php
    $consulta = $SQL->query('SELECT `guild` FROM `castelo_guerra` ORDER BY `id` ASC;');
    $number_of_rows = 0;

    foreach($consulta as $guildid){
        $id = $guildid['guild'];
    }
    $consulta2 = $SQL->query('SELECT `name`, `logo_gfx_name` FROM `guilds` WHERE id = '.$id.';');
    ?>
    <style type="text/css" media="all">
      a.castlefont {
        font-family: Verdana, Arial, Helvetica;
        font-size: 13px;
        color: #ffcc33;
        text-shadow:#000 1px -1px 2px, #000 -1px 1px 2px, #000 1px 1px 2px, #000 -1px -1px 2px;
        text-decoration:none
      }
      a:castle.topfont {
        font-family: Verdana, Arial, Helvetica;
        font-size: 10px; 
        color: #CCC;
        text-decoration:none
      }
    </style>
    <div id="warcastle" style="margin-top:20px; height:143px; width:180px; background-image:url(<?PHP echo $layout_name; ?>/images/themeboxes/warcastle.gif);">
    </br>
    </br>
    </br>
    <?php
    foreach($consulta2 as $guild){
        echo '
        <div align="center">
        <a class="castlefont" href="?subtopic=guilds&action=show&guild=' . $id . '">
    <img src="guilds/' . ((!empty($guild['logo_gfx_name']) && file_exists('guilds/' . $guild['logo_gfx_name'])) ? $guild['logo_gfx_name'] : 'default_logo.gif') . '" width="64" height="64" border="0"/>                       
        <br/>
        <div id="textcastle" style="margin-top:3px;">' . $guild['name'] . '</br></div>
        </a>
        </div>
        </td>
        </tr>
        </table>
        ';
    }
    ?>   
        <div class="Bottom" style="background-image:url(<?PHP echo $layout_name; ?>/images/general/box-bottom.gif);"></div>
    </div> 

    ahora editamos el layout.php y agregamos

    Código:
    <div id="castle" style="width:100px; height:200px; margin-top:160px; ">
    <?php include_once('widget_warcastle.php'); ?>
    </div>

    ejecutar esta tabla mysql en nuestro phpadmin

    Código:
     CREATE TABLE IF NOT EXISTS `castelo_guerra` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `guild` int(11) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ;

    INSERT INTO `castelo_guerra` (`id`, `guild`) VALUES
    (1, 1);

    creditos : victor4312



    Ver perfil de usuario http://www.tibiaface.com

    Sotomayor

    avatar
    Miembro
    Miembro
    Excelente lo probare ahora saludos!



    Maya ayuda por favor! me anda perfecto todo el sistema, anoche coloque el widget y si se veia la imagen en el layout de la guild dominante, vacie la tabla para las nuevas guilds donde va el registro de las guild dominantes, y ahora que cualquier guild domina el evento ya no aparece ninguna guild en el layout solamente el themebox estoy usando ese mismo php, y reviso le table en el mysql y no actualiza nada sobre esa tabla es decir aunque dominen la guild no lo registra en el mysql Sad

    Ver perfil de usuario

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