DR

[Sistema] Castle Guild War - Dominio De Castelo

Por drakylucas, 20 de abr. de 2011 em Mods, funções e outros

otserv
tibia
script
5.0 (1)
40
18.6k
drakylucasD
03 de maio de 2011 às 17:46

concertado erro de alguns pc's [o IsInArea era diferente]! @topic atualizado!

sheolS
04 de maio de 2011 às 12:17

Tem o arquivo php onde mostra quem é dono do castelo e tallz? Ou apenas os comandos?

BattleB
04 de maio de 2011 às 16:00

Cara Só tenho uma coisa pra ti dize:

 

 

 

 

 

 

TU EH F*DAAA!

TAVA PRECISANDO DE UM SISTEMA DESSES!

TA FUNCIONANDO DIREITINHOO!

APROVADO

 

JA VOTEI NO +++++++++++++++!

:smile_positivo:

 

:smile_positivo: :thumbsupsmiley2::thumbsupsmiley: :smile_positivo:

 

Eu sou inesperiente com scripts :/

Como coloco pra quando o Player tentar Entrar no Castelo Aparecer a Mensagem:

Você não faz parte da guild [NOMEDAGUILD]! Se Você e sua guild Quiser concorrer, Venha aqui Domingo as 13:00!

Editado Maio 4 por Battle

drakylucasD
04 de maio de 2011 às 18:09
Tem o arquivo php onde mostra quem é dono do castelo e tallz? Ou apenas os comandos?

Apenas comandos e sistemas.. caso queira desenvolver melhor tente arrumar uma equipe que faça isso pa vc [em web sou uma disgraça =s]

 

Eu sou inesperiente com scripts :/

Como coloco pra quando o Player tentar Entrar no Castelo Aparecer a Mensagem:

Você não faz parte da guild [NOMEDAGUILD]! Se Você e sua guild Quiser concorrer, Venha aqui Domingo as 13:00!

 

 

no movement troca por isso [nao testei mais ve se funfa.. se funfar por favor avise que colocarei oficialmente no topic tb =d

 

 

EDITED: testa esse [caso use tfs 0.4 mude o db.executeQuery para db.query

Nao testei dinovo mais ve ai se esse vai

local function getGuildName(id)
local qr = db.executeQuery("SELECT `name` FROM `guilds` WHERE `id`= ".. id ..";")
result = qr:getDataString("name")
if result <= 0 or result == nil or result == false then
result = "[castelo ainda sem dono]"
end
return result
end

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,"Voce nao faz parte da guild "..getGuildName(getGlobalStorageValue(storage)).."! Se Você e sua guild Quiser concorrer, Venha aqui Domingo as 13:00!")       
  end

return true
end    

Editado Maio 6 por DrakyLucas

BattleB
06 de maio de 2011 às 12:40

 

Eu sou inesperiente com scripts :/

Como coloco pra quando o Player tentar Entrar no Castelo Aparecer a Mensagem:

Você não faz parte da guild [NOMEDAGUILD]! Se Você e sua guild Quiser concorrer, Venha aqui Domingo as 13:00!

 

 

no movement troca por isso [nao testei mais ve se funfa.. se funfar por favor avise que colocarei oficialmente no topic tb =d

local function getGuildName(id)
local qr = db.getResult("SELECT `name` FROM `guilds` WHERE `id`= ".. id ..";")
result = qr:getDataString("name")
if result <= 0 or result == nil or result == false then
result = "[castelo ainda sem dono]"
end
return result
end

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,"Voce nao faz parte da guild "..getGuildName(getGlobalStorageValue(storage)).."! Se Você e sua guild Quiser concorrer, Venha aqui Domingo as 13:00!")       
  end

return true
end    

 

Não deu Aqui Cara.. Da Um Erro No Server qdo alguem tenta passa la :/

 

 

Outra Dica:

Uma Coisa Que Seria muito Útil era a War Acabar sozinha em determinados minutos.. Seria Muito Útil..

Editado Maio 6 por Battle

06 de maio de 2011 às 12:48

Claro, ele comparou string com number, vai dar erro sim. OBS: Eu coloquei outra função IsInArea que ta bem menor.

LOrDoSL
08 de maio de 2011 às 15:25

Oque é Battle Disse é verdade , pq se o gm usar o comando pra fechar a war, vao falar que o gm uso na hora que a guild tal clico na lavanca

08 de maio de 2011 às 16:10

function getGuildName(id)

if type(id) ~= "number" then
return "[No owner]"
end

local daa = db.getResult("SELECT `name` FROM `guilds` WHERE `id` = "..id..";")

for c, d in pairs(daa) do
if type(d) == "number" then
return daa:getDataString("name")
end
end

return "[No owner]"
end

 

Fiz a função pra ti. Vai retorna string de qualquer jeito então deve funcionar.

BattleB
08 de maio de 2011 às 19:27

function getGuildName(id)

if type(id) ~= "number" then
return "[No owner]"
end

local daa = db.getResult("SELECT `name` FROM `guilds` WHERE `id` = "..id..";")

for c, d in pairs(daa) do
if type(d) == "number" then
return daa:getDataString("name")
end
end

return "[No owner]"
end

 

Fiz a função pra ti. Vai retorna string de qualquer jeito então deve funcionar.

 

 

Cara, ainda to iniciando com essas paradas.. Pode Me dize onde coloco esse código?

Valeeus

Editado Maio 8 por Battle

08 de maio de 2011 às 20:13

Isso é apenas a função. Creio que o código todo seria assim:

 

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,"Voce nao faz parte da guild "..getGuildName(getGlobalStorageValue(storage)).."! Se Você e sua guild Quiser concorrer, Venha aqui Domingo as 13:00!")       
  end

return true
end    

function getGuildName(id)

if type(id) ~= "number" then
return "[No owner]"
end

local daa = db.getResult("SELECT `name` FROM `guilds` WHERE `id` = "..id..";")

for c, d in pairs(daa) do
if type(d) == "number" then
return daa:getDataString("name")
end
end

return "[No owner]"
end

 

Substitua o script que esta em data/movevents/castlewar-movements.lua por este acima.

LOrDoSL
08 de maio de 2011 às 21:40

mano nao tens como por em mais ou menos 30 min fechar o castelo?

BattleB
09 de maio de 2011 às 15:15

Isso é apenas a função. Creio que o código todo seria assim:

 

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,"Voce nao faz parte da guild "..getGuildName(getGlobalStorageValue(storage)).."! Se Você e sua guild Quiser concorrer, Venha aqui Domingo as 13:00!")       
  end

return true
end    

function getGuildName(id)

if type(id) ~= "number" then
return "[No owner]"
end

local daa = db.getResult("SELECT `name` FROM `guilds` WHERE `id` = "..id..";")

for c, d in pairs(daa) do
if type(d) == "number" then
return daa:getDataString("name")
end
end

return "[No owner]"
end

 

Substitua o script que esta em data/movevents/castlewar-movements.lua por este acima.

 

 

Valeeu aee veii !!

Rep+

Editado Maio 9 por Battle

4 semanas depois...
kelvinvictorK
31 de maio de 2011 às 09:42
local storage = 1755

local emGuerra = 1756

local firstpos = {x = 582,y = 1290,z = 7}

local secondpos = {x = 802,y = 1490,z = 0}

 

qual posição eu coloco aki?

2 meses depois...
gustavoMtekG
24 de julho de 2011 às 17:12

Queria que alguem modifica-se esse script

Colocando as seguintes funçoes: # Guerra acabar automaticamente 60 min depois que eu ativa o comando !war open

# Quando a guerra acabar todos os players que nao sao da guild vencedora ser teleportado para o templo

# Todos os player que morre dentro do castelo ser teleportado para um local que eu demarcar

1 mês depois...
big_headiB
06 de agosto de 2011 às 19:52

alguém poderia me ajudar para acabar a war automaticamente?