Ir para conteúdo
  • Cadastre-se

Posts Recomendados

script testado em TFS 0.3.6 Crying Dansom
Créditos: 100% Draky Lucas

Provavelmente funcionará em qualquer versão acima de 8.54, ja abaixo eu nao confirmo mais não custa testar :D

Como funciona?
o ADM digita !war open para ativar a war, e !war close na hora de terminar a war.
A Ultima guild que puxar a alavanca antes de terminar a war é considerada a vencedora do evento.

Vamos começar:


Atualizado: corrigido erro pelo Demonbholder [dava só em alguns pois eram desatualizados]
em data/lib/050-functions.lua ache a função isInArea, deletem-la e substituam-la por essa:

function isInArea(arr, arr1, arr2)

if (arr.x <= arr1.x and arr.x >= arr2.x) or (arr.x >= arr1.x and arr.x <= arr2.x) then
if (arr.y <= arr1.y and arr.y >= arr2.y) or (arr.y >= arr1.y and arr.y <= arr2.y) then
if (arr.z <= arr1.z and arr.z >= arr2.z) or (arr.z >= arr1.z and arr.z <= arr2.z) then
return TRUE
end
end
end

return FALSE
end

em Data/actions/scripts/ crie um arquivo chamado castlewar-action.lua e nele coloque isto :

local storage = 1755
local emGuerra = 1756

function onUse(cid, item, frompos, item2, topos) 
   if getPlayerGuildId(cid) == nil or getPlayerGuildId(cid) <= 0 or getPlayerGuildId(cid) == false then
      return doPlayerSendCancel(cid,"Voce precisa de uma guild para dominar o castelo!")
   end
   if getGlobalStorageValue(emGuerra) <= 0 then
      return doPlayerSendCancel(cid,"O Castelo nao está em guerra!")
   end   
   
   if getPlayerGuildId(cid) == getGlobalStorageValue(storage) then
      return doPlayerSendCancel(cid,"Sua guild ja está dominando o castelo!")
   end
   
   setGlobalStorageValue(storage,getPlayerGuildId(cid))
   doBroadcastMessage("A Guild ".. getPlayerGuildName(cid) .." dominou o castelo!",22)        
   return true
end

Não mude nada a não ser que não saiba o que esteja fazendo!


em Data/actions/actions.xml coloque isso:

<action actionid="1755" script="castlewar-action.lua" />

em data/movements/scripts/ crie um arquivo chamado castlewar-movements.lua e coloque isso:

local storage = 1755
local emGuerra = 1756
function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
   if getGlobalStorageValue(storage) == getPlayerGuildId(cid) then
      return true
   end
   
   if getGlobalStorageValue(emGuerra) == 1 then
      return true
   else
       doTeleportThing(cid,fromPosition,false)
       return doPlayerSendCancel(cid,"Por favor espere a batalha começar!")       
   end

return true
end

em data/movements/movements.xml coloque isso:

<movevent type="StepIn" actionid="1756" event="script" value="castlewar-movements.lua"/>

em data/talkactions/scripts/ crie um arquivo chamado castlewar-talk.lua e coloque isso:

local storage = 1755
local emGuerra = 1756
local firstpos = {x = 582,y = 1290,z = 7}
local secondpos = {x = 802,y = 1490,z = 0}
function onSay(cid, words, param) 
   if param == "open" then
         setGlobalStorageValue(emGuerra,1)
         doBroadcastMessage("A Guerra pelo castelo começou!",22)   
   return true
   elseif param == "close" then
          for _, pid in ipairs(getPlayersOnline()) do
              if isInArea(getCreaturePosition(pid),firstpos,secondpos)then
                 if getGlobalStorageValue(storage) ~= getPlayerGuildId(pid) then
              doTeleportThing(pid,getTownTemplePosition(getPlayerTown(pid)))
              doPlayerSendTextMessage(pid, MESSAGE_STATUS_CONSOLE_BLUE,"Desculpe mas sua guild não venceu essa guerra!")
                 else
                 doPlayerSendTextMessage(pid,MESSAGE_STATUS_CONSOLE_BLUE,"Sua guild conseguio dominar o castelo. Parabens por ajuda-la!")
                 end
              end
          end
          setGlobalStorageValue(emGuerra,0)         
          doBroadcastMessage("A Guerra pelo castelo terminou!",22)
   else 
        return doPlayerSendCancel(cid,"Digite !war open[inicia a guerra] ou !war close[terminaa guerra]")
   end
return true
end 

local firstpos = {x = 582,y = 1290,z = 7}
local secondpos = {x = 802,y = 1490,z = 0}

./\ edite essa parte com forme no tutorial das SS's

 

e em data/talkactions/talkactions.xml adicione isso:

<talkaction log="yes" words="!war" access="5" event="script" value="castlewar-talk.lua"/>

Tutorial: MAPA

Preencha todo o castelo com PVP TileZone, exceto a parte de caça para a guild dominante [que deverá ficar no subsolo do castelo]

Depois siga o mapinha [nao zoapq fiz em 2 min pa demonstrar kpoekopkepo...]

SS1: Castelo inteiro [nao zoa plz kkk]

 

ss1ay.jpg

Resto de instalações:


alavanca.jpgentradars.jpg ----- .\/ essas SS nao sao na lib mais, agora é na TALKACTION secondpos.jpg
.---- ./\


OBS : Script completo retirado de outro fórum por DrakyLucas.

 

Creditos : DrakyLucas 100%.

Editado por ViitinG (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 2 months later...
  • 1 month later...

ei mano tem como melhorar e criar um barreira pra eles ir tipo destruindo até chega  a alavanca

???

Link para o post
Compartilhar em outros sites
  • 4 weeks later...

Eu Tenho Todos Que Invade qnd puxa a lavanca diz o player da guild acabo de conquistar o castelo pelga 27 vezes ! tenho todos ! adc skype para contato biel.diniz5 preciso de um trabalho sobre um castle em troca de Scripters !

Link para o post
Compartilhar em outros sites

@glacialot é proibído realizar prática de comércio neste fórum amigo !

Leia as regras do fórum : http://www.tibiaking.com/forum/topic/1281-regras-gerais/?p=7680#entry7680

 

 

Comércio:
É proibido realizar prática de comércio neste fórum, você não tem autorização para vender e nem comprar qualquer tipo de produto aqui, exceto produtos oferecido pela CipSoft, personagens no Tibia Global e Keys para Bots o mesmo deve ser anunciado e/ou pedido nas seções adequadas e nós da equipe do Tibia King não nos responsabilizamos por nada negociado!

Link para o post
Compartilhar em outros sites

ViitinG, consegues me dar um auxílio via skype para instalação e configuração deste script? Obrigado por compartilhar.

1508741_4.png

         Acesse: www.7wars.com          Global 8.60 full

 

Link para o post
Compartilhar em outros sites
  • 3 weeks later...
  • 5 months later...
  • 2 months later...

Olá, prazer sou Alexandre.

As imagens não aparecerem. Poderia por favor, atualiza-las ou citar como são os:

local firstpos = {x = 582,y = 1290,z = 7}
local secondpos = {x = 802,y = 1490,z = 0}

?

Grato! :3

bagolaforum.png

Link para o post
Compartilhar em outros sites
  • 1 year later...
  • 6 months later...

imagem quebrada, cade a staff do forum?

estamos perdendo qualidade, "recado para alguem da administração bola um geito tipo de ban para deletar os posts pelos usuarios mesmo por % de views e deslike seila ".

para nos conhecer clica na imagem

 

wvwhp0.png

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por luanluciano93
      Olá pessoal, estou desenvolvendo esse sistema vip para TFS 1.x, se precisarem de alguma função nova é só comentar, criei para usar em um servidor meu e resolvi postar, bom proveito a todos.
       
      É só ir no arquivo data/lib/core/player.lua e adicionar esse código no começo do script:
      -- ALTER TABLE `accounts` ADD `vip_time` BIGINT(20) NOT NULL DEFAULT 0; -- player:getVipTime() function Player.getVipTime(self) local resultId = db.storeQuery("SELECT `vip_time` FROM `accounts` WHERE `id` = '".. self:getAccountId() .."';") local time = resultId ~= false and result.getNumber(resultId, "vip_time") or 0 result.free(resultId) return time end -- player:isVip() function Player.isVip(self) return self:getVipTime() > os.time() and true or false end -- player:addVipDays(days) function Player.addVipDays(self, days) return(self:isVip() and tonumber((days * 86400))) and db.query("UPDATE `accounts` SET `vip_time` = '".. (self:getVipTime() + (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") or db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() + (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:removeVipDays(days) function Player.removeVipDays(self, days) return(self:isVip() and tonumber((days * 86400))) and db.query("UPDATE `accounts` SET `vip_time` = '".. (self:getVipTime() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") or db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:setVipDays(days) function Player.setVipDays(self, days) return db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:removeVip() function Player.removeVip(self) db.query("UPDATE `accounts` SET `vip_time` = '0' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:sendVipDaysMessage() function Player.sendVipDaysMessage(self) if self:isVip() then local vipTime = self:getVipTime() - os.time() local vipDays = 1 + (math.floor(vipTime / 86400)) return self:getVipTime() ~= false and self:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'You have '.. vipDays .. ' vip day(s) in your account.') end end -- player:checkVipLogin() function Player.checkVipLogin(self) if self:getVipTime() > 0 and not self:isVip() then return self:removeVip() and self:teleportTo(self:getTown():getTemplePosition()) end end  
       
      As funções são:
      • player:getVipTime() - Retorna o valor da tabela vip_time (igual esta na database).
      • player:isVip() - Retorna se o player é vip ou não.
      • player:addVipDays(days) - Usa-se em algum script para para adicionar dias de vip ao player (parâmetro de entrada "days").
      • player:removeVipDays(days) - Usa-se em algum script para para remover dias de vip do player (parâmetro de entrada "days").
      • player:setVipDays(days) - Usa-se em algum script para para mudar os dias de vip do player (parâmetro de entrada "days").
      • player:removeVip() - Usa-se em algum script para para remover todo tempo de vip do player.
      • player:sendVipDaysMessage() - Retorna uma mensagem no player mostrando os dias de vip que ainda restam ao player.
      • player:checkVipLogin() - Checa se a vip do player acabou, se sim teleporta ele para o templo.
       

      Qualquer dúvida ou erro/bug poste aqui.
    • Por Killua
      Como funciona?
      A cada monstro que vc mata, seus itens equipados ganham 1 de exp. Quando seus itens chegarem às quantidades de exp definidas, eles upam e ficam com o nome assim: Demon Helmet + 1. Helmets, armors, legs, e boots recebem 1 de arm a cada vez que upam. Armas recebem 1 de ataque e escudos 1 de defesa.
       
      Para o monstro contar, ele deve dar um mínimo de exp (definido no script). O número de exp a que me refiro é aquele um presente no arquivo .xml.
       
      Para instalar, crie Killua Items Upgrade.lua em data/creaturescripts/scripts e coloque:
        Em data/creaturescripts/creaturescripts.xml coloque essas duas tags:
      <event type="kill" name="Item level" event="script" value="Killua Items Upgrade.lua"/> <event type="login" name="Item levell" event="script" value="Killua Items Upgrade.lua"/> Configurando: Na tabela table_of_slots, coloque em quais slots os itens upam.
      min_exp é a experiência mínima que o monstro deve ter para contar exp para o item. Se vc colocar 500, somente os monstros que tem exp igual ou superior a 500 no arquivo.xml vão valer.
      exp_levels são os valores de exp que os itens devem atingir para upar. No meu caso, quando o item alcançar 50 de exp, ele upa para o level 1. Quando alcançar 50 de exp, upa para o level 2 e assim por diante.
    • Por Sekk
      Bom, procurei esse Castle por MUITO TEMPO, mas não achei em NENHUM LUGAR DA INTERNET. Ontem, eu estava vendo alguns mapas do @Deathrocks, e vi nos prints, que o mapa possuia o evento que eu queria!
       
      Então baixei o mapa e extrai o evento, então venho lhes trazer!
       
       
      Nome: Castle 24H
      Cliente: 8.6
      Versão TFS: 0.4
      Tipo: Evento
       
      Bom, para começar, vamos em actions/scripts e crie 2 arquivos:
       
      castledoor1.lua
       
      castlewar1.lua
       
        Agora em actions.xml adicione as tags:
       
      Agora em monster/traps crie 3 arquivos:
       
      porta.xml
       
      protectcastle.xml  
      statue.xml  
      Agora em monsters.xml adicione as tags:    
      Vamos para movements/scripts e crie 2 arquivos:
       
      castlewar2.lua
       
      level.lua  
      Agora em movements.xml adicione as tags:  
       
      Pronto. Agora você só precisa baixar o mapa, inserir o mesmo ao seu servidor, configurar os teleports, e as hunts dentro do castle etc.
       
      PRINTS:
      1ª parte
       
      2ª parte:
       
      Obs.: Todos os ActionID e monsters já estão no mapa! Você só precisa configurar as coordenadas dos teleports, e o que possui no castle!
       
      Obs².: Tudo o que você pode configurar, já está escrito em cada script!
       
       
      Créditos:
      @DeathRocks
      PC98
      mapa.rar
    • Por gpedro
      Testado: MySQL & SQLite
      Distro: TFS 0.4_SVN & TFS 0.3.6

      MySQL

      ALTER TABLE `players` ADD `resets` INT(11) NOT NULL DEFAULT "0"; SQLite ALTER TABLE players ADD resets INTEGER not null default 0 Adicionando nas sources player.h procure por: uint32_t level; logo abaixo, adicione: uint32_t resets; iologindata.cpp procure por query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`," substitua por: query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`, `resets`, " procure por player->level = std::max((uint32_t)1, (uint32_t)result->getDataInt("level")); logo abaixo adicione: player->resets = (uint32_t)result->getDataInt("resets"); procure por query << "`maglevel` = " << player->magLevel << ", "; logo abaixo adicione: query << "`resets` = " << player->resets << ", "; players.cpp procure por: s << " (Level " << level << ")"; substitua por: s << " (Level " << level << ") [Reset " << resets << "]"; players.h procure por: void setPromotionLevel(uint32_t pLevel); logo abaixo adicione: uint32_t getResets() { return resets;} void setResets(int32_t amount) { resets += amount; if (resets < 0) {resets = 0;} } luascript.cpp para 0.3.6 static int32_t luaDoPlayerSetIdleTime(lua_State* L); logo abaixo adicione: static int32_t luaGetResets(lua_State* L); static int32_t luaSetResets(lua_State* L); talkactions.xml <talkaction words="!rank;/rank" event="script" value="ranks.lua"/> <talkaction words="!reset;/reset" script="reset.lua"/> ranks.lua
      Créditos: Dark Skyllen, Marcryzius, Mock, Kydrai, Cykotitan, gpedro*.
      * adaptação para 0.4
    • Por VitorSubhi
      Apresentação: Olá galera do Tibia King, este é meu primeiro tutorial que desenvolvo após anos apenas sugando da comunidade, chegou a hora de compartilhar um pouco de conhecimento, rsrs...
      Após ver que muitos usuários tinham interesse em um sistema de Trade de Points in-game resolvi trazer um sistema totalmente completo para vocês.
       
      Funcionamento:
      Player 1 após adquirir os Points, pode iniciar uma negociação com o Player 2 através do comando /tradepoints Player 2, Quantidade. Será aberto uma Janela de Trade com o item referente aos Points. Após ambos aceitarem a negociação será realizado a troca de Points pelo item requisitado.
      Observações:
      Necessário ter acesso às Sources de sua Distro. Testado em servidor 8.6 (The Forgotten Server 0.4). Antes que venham falar que possui sistemas parecidos, veja o diferencial (Item não aparece em nenhum inventário, e não é necessário usar/comprar qualquer item).  
      Algumas Imagens:
       
      Instalação:
      Sources > Luascript.cpp Sources > Luascript.cpp Sources > Luascript.h  
       
      Server > Data > Lib > 050-function Server > Data > Creaturescripts > Scripts >Trade_Orbs.lua Server > Data > Creaturescripts > Creaturescripts.xml Server > Data > Creaturescripts > Scripts > Login.lua Server > Data > Talkactions > Scripts > Points_Trade.lua Server > Data > Talkactions > Talkactions.xml Créditos:
      Todo o sistema foi feito completamente por mim: Vítor Subhi.
      The Forgotten Server (Pelas Sources)
      Vodkart, White Wolf, Natanael Beckman, e a todos os demais membros do TK que não lembro o nome, que contribuíram indiretamente através de seus tutoriais.
       
       
       
       
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo