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
  • Respostas 20
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

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

Alguem vende esses scripts do castle 24h?

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

Cara esse ai tem q usar o comando para invadir, tipo nao aparece o nome do player q esta invadindo entende.. nao é 24hrs

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

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 KotZletY
      Salve geral, recentemente fiz um Task System para meu servidor, então gostaria de compartilha ele com vocês, assim como outros scripts que fiz e gostaria de compartilhar. Bom, vamos ao que interessa.
                        
       
                                                                                                               Informações!!
      Task Normal - Você 1x por vez, quantas vezes quiser, repetindo a task se também quiser.
      Task Diaria -  Você faz uma vez por dia, não podendo repeti em quanto as 24 horas não terminar.
      Task Rank - É mostrado na descrição do player qual rank task ele possui.
      Task Rank Quest - Um extra desse task system é o piso task, será explicado na parte do script, leiam com atenção.
      Task Comandos - Comandos task, 1 para ver o progresso das suas task e outro para mostrar informações do seu personagem, como uma consulta, os comandos são: !task que mostra quais task você ta fazendo, tanto diaria quanto normal e !task me que mostrar informações do seu personagem, como rank, quantidade de pontos task e quantidade de pontos task rank.
      Well, o resto é surpresa, cabe você descobrir! xD
       
       
      Para não ficar só nas palavras, mostrarei algumas imagens, várias no caso: Removida, colocarei novas!
       
                                                                                                               Instalação!!
      Muito bem, chega de conversa, como instalar logo essa bagaça. Primeiramente vá em data/lib e abra o arquivo lib.lua e adicione:
      dofile('data/lib/task system.lua') Ainda na pasta lib crie um arquivo.lua chamado task system.lua e adicione esse code dentro:
       
      No final do tópico, ensinarei a configurar a lib. Agora vai em, data/npc e crie um arquivo.xml chamado  task.xml e coloque esse code dentro:
      <?xml version="1.0" encoding="UTF-8"?> <npc name="NPC Task" script="task system.lua" walkinterval="0" floorchange="0"> <health now="150" max="150"/> <look type="430"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. I'm in charge of delivering missions to the players. Would you like to do a {normal} task, {daily} task, {receive} your reward from a task or {abandon} a task ? You can also see the {normal task list} and the {daily task list}."/> <parameter key="message_farewell" value="See you later." /> <parameter key="message_walkaway" value="See you later." /> </parameters> </npc> Ainda na pasta npc, entre na pasta scripts e crie um arquivo.lua chamado task system.lua e adicione esse code dentro:
       
      Agora vá em data/talkactions e abra o arquivo talkactions.xml e adicione a seguinte tag:
      <talkaction words="!task" separator=" " script="task system.lua" /> Ainda na pasta talkactions entre na pasta scripts e crie um arquivo.lua chamado task system.lua e adicione esse code dentro dele:
       
      Agora vá em data/creaturescripts e abra o arquivo creaturescripts.xl e adicione a seguinte tag:
      <event type="kill" name="tasksystem" script="task system.lua"/> Ainda na pasta creaturescripts entre na pasta scripts e crie um arquivo.lua chamado task system.lua e adicione esse code dentro dele:
      Ainda na pasta script  abra o login.lua e adicione dentro:
      player:registerEvent("tasksystem") Agora vá em data/events/scripts e abra o arquivo player.lua, depois de aberto, antes de:
      self:sendTextMessage(MESSAGE_INFO_DESCR, description) adicione:
      if thing:isCreature() then if thing:isPlayer() then description = string.format("%s\nTask Rank: "..getRankTask(thing), description) end end  
                                                                                              Extra(Opcional)!!
       
      Extra,  vá em data/movements/scripts e crie um  arquivo chamado tile task.lua, depois de aberto, antes de:
            
      Vá em data/movements/movements.xml adicione: 
      <movevent event="StepIn" actionid="XXXX" script="tile task.lua"/>  
      Explicação: Com esse movements acima, você só poderá passar por o piso caso tenha pontos task necessário para passar, se ativar a opção, removePoints então a mesma quantidade de pontos necessária para passar, será removida, ao passar, caso esteja desativada, então
      apenas será necessário ter os pontos task para passar. Em XXXX coloque o actionid, e o actionid coloque no piso desejado!
       
      New Extra: Vá em data/movements/scripts e crie um arquivo chamado tile task2.lua e adicione o seguinte scripts:
       
      Vá em data/movements/movements.xml adicione:  
      <movevent event="StepIn" actionid="XXXX" script="tile task2.lua"/> Explicação: Ao adicionar esse movements acima, você só poderá passar pelo piso caso seu rank task seja igual ou superior ao rank definido na variável, caso não seja igual e nem superior, não será possível passar.
      Configure na lib, a sequência de ranks de acordo com a sequência de rank da tabela de pontos, assim:
       
      A sequência precisa está igual e numeradas.
                                                                                               Configurando!!
      task_monsters = { [1] = {name = "monster1", mons_list = {"monster_t2", "monster_t3"}, storage = 30000, amount = 20, exp = 5000, pointsTask = {1, 1}, items = {{id = 2157, count = 1}, {id = 2160, count = 3}}}, [2] = {name = "monster2", mons_list = {"", ""}, storage = 30001, amount = 10, exp = 10000, pointsTask = {1, 1}, items = {{id = 10521, count = 1}, {id = 2160, count = 5}}}, [3] = {name = "monster3", mons_list = {"", ""}, storage = 30002, amount = 10, exp = 18000, pointsTask = {1, 1}, items = {{id = 2195, count = 1}, {id = 2160, count = 8}}}, [4] = {name = "monster4", mons_list = {"", ""}, storage = 30003, amount = 10, exp = 20000, pointsTask = {1, 1}, items = {{id = 2520, count = 1}, {id = 2160, count = 10}}} } task_daily = { [1] = {name = "monsterDay1", mons_list = {"monsterDay1_t2", "monsterDay1_t3"}, storage = 40000, amount = 10, exp = 5000, pointsTask = {1, 1}, items = {{id = 2157, count = 1}, {id = 2160, count = 3}}}, [2] = {name = "monsterDay2", mons_list = {"", ""}, storage = 40001, amount = 10, exp = 10000, pointsTask = {1, 1}, items = {{id = 10521, count = 1}, {id = 2160, count = 5}}}, [3] = {name = "monsterDay3", mons_list = {"", ""}, storage = 40002, amount = 10, exp = 18000, pointsTask = {1, 1}, items = {{id = 2195, count = 1}, {id = 2160, count = 8}}}, [4] = {name = "monsterDay4", mons_list = {"", ""}, storage = 40003, amount = 10, exp = 20000, pointsTask = {1, 1}, items = {{id = 2520, count = 1}, {id = 2160, count = 10}}} }                                        
                                                    
      nome - Nome do monstro.
      mons_list - Nome dos monstro que são semelhantes e que matando eles também contará.
      Exemplo:
      name = "troll", mons_list = {"troll","frost troll","island troll"} e assim matando,  troll, frost troll e island troll contará na task também.
      storage - É a storage que salva a quantidade de monstros já matados.
      amount - É a quantidade necessária de monstros matados para finalizar a task.
      exp - É a quantidade de Experiência que vai ganhar ao finalizar a task, caso não queira dar experiência, basta deixar em 0.
      pointsTask = {Task Points Que vai ganhar(Pontos usado no piso e etc..), Pontos Rank, que irá ganhar e aumentar seu rank.}
      items - Itens que o player vai ganhar, devem está tabelados, dentro da tabela item, adicione das tabelas contendo o id do item e count, quantidade de items que irá ganhar.
      Ex: items = {{id = 2157, count = 1}, {id = 2160, count = 3}} -- Aqui contém 2x tipos de itens, o 2157 e o 2160, e suas devidas quantidades que irá ganhar.
      items = {{id = 2157, count = 1}} -- Aqui só tem 1 tipo de item e a quantidade que vai ganhar.
      Adicione quantos itens quiser. O mesmo vale para as task diarias!
       
       
       
      Bom, é isso ae, qualquer duvida, crítica, sugestões, deixem ae, se precisa de suporte na instalação ou está com erro em algo estarei dando suporte, abraços e bom uso do sistema.
      É totalmente proibido leva meu sistema para outro site, blog ou fórum!
    • Por Nextbr
      Eae Galera Beleza?
      - Hoje Vou Postar um Sistema de TASK separados por Elementos Configurado (Primeira e Segunda) Geraçao , Intao Vamos La:
       
      [+] Info:
      - Task System (Pode Repetir a Task Varias Vezes)
      - Task Separado Por (Elemento) - Configurado (Primeira e Segunda) Geraçao
      - Npc Mega Task (Receber Premio e Experiencias) - Configurado
       
      [+] Cria um Arquivo em (data/lib) e cria um Arquivo Chamado: amoebaTask.lua
       
       
      - obs: Aki voce Adiciona Mais Pokemons Separados Por Elementos e Edita o Premio e a ExP que vai Ganhar
       
      [+] Depois vai em (data/creaturescripts/scripts) e cria um Arquivo Chamado: Task.lua
       
      - Depois vai em (data/creaturescripts/creaturescripts.xml) e adiciona isso:
       
      <event type="kill" name="task" event="script" value="task.lua"/>
       
      - Logo Apos registra no Login:
       
      registerCreatureEvent(cid, "task")
       
      [+] Depois Cria um Arquivo em (data/npc/scripts) Chamado: task.lua:
       
      - Logo Apos vai em (data/npc) e cria um arquivo chamado: task.xml
       
       
      [+] Agora Cria um Arquivo (data/talkactions/scripts) Chamado: task.lua
       
       
      - Depois vai em (data/talkactions/talkactions.xml) e adiciona isso:
       
          <talkaction words="!task;/task" script="task.lua"/>
       
      Creditos: Killua
                      NextBR (Por Editar)
    • 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
  • Estatísticas dos Fóruns

    96846
    Tópicos
    519606
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo