Ir para conteúdo

Castle Event


Skymagnum

Posts Recomendados

Bom, ele se baseia em um sistema que o player que conseguir ficar encima do trono, ganha.

 

yUJx4Sdn[/pastebin]

 

Configuração:

local THRONE_POS = {x = 1, y = 2, z = 3} aqui é a posição do trono.

 

local walls = {

{ID, POS},

{ID, POS},

}

Aqui é aonde tranca o evento, ele só abre você deve colocar um teleport ali dentro.

local DUR = 30 -- aqui e quantos minutos o evento vai durar, você pode cancelar usando !castle fechar.

 

Você cria uma área com um trono/tile e configura a THRONE_POS para aquela posição, você pode cancelar o evento também. !castle fechar.

 

Não foi testado, então qualquer bug favor reportar.

 

TAG:

 <talkaction words = "!castle" access = "5" event = "script" value = "nome_do_script.lua"/>

 

Para abrir use !castle abrir.

Editado por Skymagnum
Link para o comentário
Compartilhar em outros sites

bacana bem legal você poderia fazer alguns ajustes ? passar isso pra pasta mods e que esse evento ocorra todos os domingos as 20:00 terminando as 21:00 e que o ganhador invez de ganhar dinheiro ganha-se 7 dias de premy account e + 1 house. ? quando puxa-se o ganhador ele seria teleportado pra house que ele vai ganhar e lá no piso especial assim que o ganhador fosse puxado fosse criado uma pedra no tile pra nenhum player dizer que foi ele que ganhou.

Editado por KennyxD
Link para o comentário
Compartilhar em outros sites

testei e deu esse erro aki

 

[26/05/2013 20:34:24] [Error - TalkAction Interface] 
[26/05/2013 20:34:24] data/talkactions/scripts/castle.lua:onSay
[26/05/2013 20:34:24] Description: 
[26/05/2013 20:34:24] data/talkactions/scripts/castle.lua:15: attempt to call global 'doBroadcastMesssage' (a nil value)
[26/05/2013 20:34:24] stack traceback:
[26/05/2013 20:34:24]  data/talkactions/scripts/castle.lua:15: in function 'OpenEvent'
[26/05/2013 20:34:24]  data/talkactions/scripts/castle.lua:76: in function <data/talkactions/scripts/castle.lua:67>

Link para o comentário
Compartilhar em outros sites

testei e deu esse erro aki

 

[26/05/2013 20:34:24] [Error - TalkAction Interface]
[26/05/2013 20:34:24] data/talkactions/scripts/castle.lua:onSay
[26/05/2013 20:34:24] Description:
[26/05/2013 20:34:24] data/talkactions/scripts/castle.lua:15: attempt to call global 'doBroadcastMesssage' (a nil value)
[26/05/2013 20:34:24] stack traceback:
[26/05/2013 20:34:24]  data/talkactions/scripts/castle.lua:15: in function 'OpenEvent'
[26/05/2013 20:34:24]  data/talkactions/scripts/castle.lua:76: in function <data/talkactions/scripts/castle.lua:67>

Arrumado , obrigado por reportar.

Link para o comentário
Compartilhar em outros sites

não entendi essa parte me ajuda ? a configurar ?

 

local walls = {

{ID, POS},

{ID, POS},

}

 

a e se possivel quero que na hora que for começar remove a pedra de ID:1285 e cria a escada de ID 3687 na Position: [X: 539] [Y: 474] [Z: 7]. e quando termina o evento a escada e removida e é colocada a pedra novamente

 

se puder fazer outros ajustes tbm ajudaria muito coloca pra min pra

 

invez de teleportar o ganhador pro templo teleporta ele pra Position: [X: 531] [Y: 459] [Z: 7]. e no piso especial ser criado o item ID:391 assim que o ganhador for puxado piso especial fica na Position: [X: 559] [Y: 453] [Z: 7].

Editado por KennyxD
Link para o comentário
Compartilhar em outros sites

local THRONE_POS = {x = 1, y = 2, z = 3}
local STORAGE_EVENT = 83902
local STORAGE_PLAYER = 73289
local REWARDS = {{2160, 10}, {2159, 30}}
local DUR = 30 -- in minutes

function OpenEvent()


   for _, tid in ipairs(getPlayersOnline()) do
       setPlayerStorageValue(tid, STORAGE_PLAYER, 1)
end

   setGlobalStorageValue(STORAGE_EVENT, 1)
   doBroadcastMessage("O Evento castle foi aberto.", 25)
end


function getWinnerCastle()

local player = getTopCreature(THRONE_POS).uid
local gid = {}

if getGlobalStorageValue(STORAGE_EVENT) < 0 then return true end

   if (isPlayer(player)) then
       if (getPlayerStorageValue(player, STORAGE_PLAYER) > 0) then
           for _, guild in ipairs(getPlayersOnline()) do
               if getPlayerGuildId(guild) == getPlayerGuildId(player) then
                   table.insert(gid, guild)
end
end
for _, T in pairs(REWARDS) do
doPlayerAddItem(player, T[1], T[2])
for _, players in ipairs(gid) do
doPlayerAddItem(players, T[1], T[2])
end
end
for _, cid in ipairs(getPlayersOnline()) do
setPlayerStorageValue(cid, STORAGE_PLAYER, 0)
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
end
doBroadcastMessage(getCreatureName(player) .. " ganhou o evento ele e da guild " .. getPlayerGuildName(player), 25)
end
else
       doBroadcastMessage("Ningúem ganhou o evento.", 27)
       for _, pid in ipairs(getPlayersOnline()) do
           doPlayerAddItem(pid, 2160, 100)
           setPlayerStorageValue(pid, STORAGE_PLAYER, 0)
           doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
end
end

   setGlobalStorageValue(STORAGE_EVENT, 0)
   return db.executeQuery("DELETE FROM `player_storage` WHERE `key` = " .. STORAGE_PLAYER)
end

function CastleWalls()

local walls = {
{ID, POS},
{ID, POS},
}

   for _, K in pairs(walls) do
       local wall = getTileItemById(K[2], K[1])
       if (wall.uid > 0) then
           doRemoveItem(wall.uid)
else
           doCreateItem(K[1], 1, K[2])
end
end

end

function onSay(cid, words, param, channel)

   if ((param == "abrir") and (getGlobalStorageValue(STORAGE_EVENT) == 1)) then
       doPlayerSendTextMessage(cid, 27, "O evento já esta aberto.") return true
elseif ((param == "fechar") and (getGlobalStorageValue(STORAGE_EVENT) == 1)) then
       getWinnerCastle()
       CastleWalls() return true
end

   OpenEvent()
   CastleWalls()
   addEvent(getWinnerCastle(), DUR * 60 * 1000)

   return true
end

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...
×
×
  • Criar Novo...