• 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

    [Admin] God Maya
    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

    Sotomayor
    Miembro
    Miembro
    Excelente lo probare ahora saludos!

    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.

    Temas Recomendados×+

       

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