já existe esse script CTF
TEM VÁRIOS SERVIDORES QUE USAM ELE.
Por AnneMotta, 30 de jan. de 2012 em Scripts
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

já existe esse script CTF
TEM VÁRIOS SERVIDORES QUE USAM ELE.
info
Grupo: Banidos
Registrado: 21/01/12
Posts: 842
Reputação: +234
Char no Tibia: Stephan

Eu procurei a que varias veses e nada cara
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

eles vendiam direto esse sistema velho
eu lembro que eu tinha em servidor meu,agr deve estar de graça
fala com os cara q ele tem
info
Grupo: Banidos
Registrado: 21/01/12
Posts: 842
Reputação: +234
Char no Tibia: Stephan

Tem como me informar alguem que tenha ? algum amigo seu seila =/
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

me adc no msn
eu ja te mandei o convite mas vc nunca entra
eu vo ve se o cara q me forneceu ainda vive no mundo da lua
info
Grupo: Banidos
Registrado: 21/01/12
Posts: 842
Reputação: +234
Char no Tibia: Stephan

VodKart ja te aceitei no msn.
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

VC TEM CAM?
VO ENTRA PERA
info
Grupo: Banidos
Registrado: 21/01/12
Posts: 842
Reputação: +234
Char no Tibia: Stephan

koASOKASOKSAKOSAKOSAKOSAKO' se me arruma o script talvez eu tenha n.n
info
Grupo: Herói
Registrado: 12/03/11
Posts: 1.9k
Reputação: +284
Gênero: Masculino
Char no Tibia: Nokte

Nossa Vodkart, não perde uma neh ?? Safadenhooo, rs
globalevents/scripts/ctf.lua adicione:
local t = {
redPos = {x = 982, y = 1022, z = 7},
bluePos = {x = 993, y = 1033, z = 7},
redStorage = 15000,
blueStorage = 15001,
fromPos = {x = 1004, y = 1023, z = 7},
toPos = {x = 1015, y = 1032, z = 7}
}
local conditionBlue = createConditionObject(CONDITION_OUTFIT)
setConditionParam(conditionBlue, CONDITION_PARAM_TICKS, 1800 * 1000)
addOutfitCondition(conditionBlue, {lookType = 130, lookHead = 87, lookBody = 87, lookLegs = 87, lookFeet = 87})
local conditionRed = createConditionObject(CONDITION_OUTFIT)
setConditionParam(conditionRed, CONDITION_PARAM_TICKS, 1800 * 1000)
addOutfitCondition(conditionRed, {lookType = 130, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94})
local function teleportThing(minutes)
local event = 0
if minutes <= 0 then
for _, cid in ipairs(getPlayersOnline()) do
if isInRange(getThingPos(cid), t.fromPos, t.toPos) then
if math.random(1, 3) < 3 then
setPlayerStorageValue(cid, t.redStorage, 1)
doAddCondition(cid, conditionRed)
doTeleportThing(cid, t.redPos, true)
else
setPlayerStorageValue(cid, t.blueStorage, 1)
doAddCondition(cid, conditionBlue)
doTeleportThing(cid, t.bluePos, true)
end
end
end
return true
end
if minutes == 1 then
doBroadcastMessage("Capture The Flag will begin in " .. minutes .. " minute!")
elseif minutes <= 3 then
doBroadcastMessage("Capture The Flag will begin in " .. minutes .. " minutes!")
else
doBroadcastMessage("Capture The Flag will begin in " .. minutes .. " minutes!")
end
event = addEvent(teleportThing, 60, minutes - 1)
return true
end
function onThink(interval, lastExecution)
return teleportThing(math.abs(math.ceil(1)))
end
globalevents.xml adicione:
[/font][/color] [color=#008000]<globalevent name="ctf_event" interval="60" event="script" value="ctf.lua"/>[/color] [color=#000000][font=Tahoma, Calibri, Arial, Verdana, Tahoma,]
data/creaturescripts/scripts/ctf_target.lua adicione:
local t = {
redStorage = 15000,
blueStorage = 15001
}
function onCombat(cid, target)
if isPlayer(cid) and isPlayer(target) then
if getPlayerStorageValue(cid, t.redStorage) == 1 and getPlayerStorageValue(target, t.redStorage) == 1 then
return doPlayerSendCancel(cid, "You may not attack your team mates.") and false
elseif getPlayerStorageValue(cid, t.blueStorage) == 1 and getPlayerStorageValue(target, t.blueStorage) == 1 then
return doPlayerSendCancel(cid, "You may not attack your team mates.") and false
end
end
return true
end
data/creaturescripts/scripts/stats_ctf.lua adicione:
local t = {
redPos = {x = 983, y = 1028, z = 7},
bluePos = {x = 992, y = 1028, z = 7},
redStorage = 15000,
blueStorage = 15001,
redFlag = 18000,
blueFlag = 18001
}
function onStatsChange(cid, attacker, type, combat, value)
if type == 1 then
if getCreatureHealth(cid) <= value then
if isPlayer(cid) and isCreature(attacker) then
if getPlayerStorageValue(cid, t.redStorage) == 1 then
if getPlayerStorageValue(cid, t.blueFlag) == 1 and getGlobalStorageValue(t.blueFlag) == 1 then
setPlayerStorageValue(cid, t.blueFlag, -1)
setGlobalStorageValue(t.blueFlag, -1)
doBroadcastMessage(getCreatureName(cid) .. " has lost the Blue Flag!")
doTeleportThing(cid, t.redPos, true)
else
doTeleportThing(cid, t.redPos, true)
end
doCreatureAddHealth(cid, getCreatureMaxHealth(cid), true)
doCreatureAddMana(cid, getCreatureMaxMana(cid), true)
elseif getPlayerStorageValue(cid, t.blueStorage) == 1 then
if getPlayerStorageValue(cid, t.redFlag) == 1 and getGlobalStorageValue(t.redFlag) == 1 then
setPlayerStorageValue(cid, t.redFlag, -1)
setGlobalStorageValue(t.redFlag, -1)
doTeleportThing(cid, t.bluePos, true)
doBroadcastMessage(getCreatureName(cid) .. " has lost the Red Flag!")
else
doTeleportThing(cid, t.bluePos, true)
end
doCreatureAddHealth(cid, getCreatureMaxHealth(cid), true)
doCreatureAddMana(cid, getCreatureMaxMana(cid), true)
end
end
return false
end
end
return true
end
creaturescripts.xml adicione:
<event type="statschange" name="stats_ctf" event="script" value="stats_ctf.lua"/> [/font][/color] [color=#000000][font=Tahoma, Calibri, Arial, Verdana, Tahoma,]<event type="combat" name="ctf_target" event="script" value="ctf_target.lua"/>
login.lua adicione:
registerCreatureEvent(cid, "stats_ctf") registerCreatureEvent(cid, "ctf_target")
data/movements/scripts/test.lua adicione:
local t = {
redStorage = 15000,
blueStorage = 15001,
redFlag = 18000,
blueFlag = 18001,
redGoal = 19000,
blueGoal = 19001,
fromPos = {x = 982, y = 1022, z = 7},
toPos = {x = 993, y = 1033, z = 7}
}
local function getPlayers()
local thisTable = {}
for x = t.fromPos.x, t.toPos.x do
for y = t.fromPos.y, t.toPos.y do
for z = t.fromPos.z, t.toPos.z do
local myPos = {x = x, y = y, z = z}
local player = getTopCreature(myPos).uid
if player > 0 then table.insert(thisTable, player) else table.remove(thisTable, player) end
end
end
end
return {thisTable = thisTable}
end
local function repeatFlagOnPlayer(cid)
local k = getThingPos(cid)
local r = {
{pos = {x = k.x + 2, y = k.y - 2, z = k.z}, delay = 300},
{pos = {x = k.x + 2, y = k.y + 2, z = k.z}, delay = 300},
{pos = {x = k.x - 2, y = k.y + 2, z = k.z}, delay = 300},
{pos = {x = k.x - 2, y = k.y, z = k.z}, delay = 300},
{pos = {x = k.x - 2, y = k.y - 2, z = k.z}, delay = 300},
{pos = {x = k.x, y = k.y - 2, z = k.z}, delay = 300}
}
local effects = {27, 28, 29, 30}
if isPlayer(cid) then
if getPlayerStorageValue(cid, t.blueStorage) == 1 and getPlayerStorageValue(cid, t.redFlag) == 1 and getGlobalStorageValue(t.redFlag) == 1 then
for i = 1, 6 do
addEvent(doSendDistanceShoot, r[i].delay, r[i].pos, k, CONST_ME_FIREWORK_YELLOW)
end
for i = 1, 4 do
addEvent(doSendMagicEffect, 1000, getThingPos(cid), effects[i])
end
return addEvent(repeatFlagOnPlayer, 1000, cid)
elseif getPlayerStorageValue(cid, t.redStorage) == 1 and getPlayerStorageValue(cid, t.blueFlag) == 1 and getGlobalStorageValue(t.blueFlag) == 1 then
for i = 1, 6 do
addEvent(doSendDistanceShoot, r[i].delay, r[i].pos, k, CONST_ME_FIREWORK_YELLOW)
end
for i = 1, 4 do
addEvent(doSendMagicEffect, 1000, getThingPos(cid), effects[i])
end
return addEvent(repeatFlagOnPlayer, 1000, cid)
else
return false
end
else
return false
end
end
function onStepIn(cid, item, position, fromPosition, toPosition, lastPosition, actor)
if isPlayer(cid) then
if item.actionid == 6000 then
if getPlayerStorageValue(cid, t.redStorage) == 1 then
if getPlayerStorageValue(cid, t.blueFlag) == -1 and getGlobalStorageValue(t.blueFlag) == -1 then
setPlayerStorageValue(cid, t.blueFlag, 1)
setGlobalStorageValue(t.blueFlag, 1)
repeatFlagOnPlayer(cid)
doBroadcastMessage(getCreatureName(cid) .. " has stolen the Blue Flag!")
else
doCreatureSay(cid, "The flag is not at home.", 19)
doTeleportThing(cid, fromPosition, false)
end
else
doCreatureSay(cid, "You may only pick up the opposite team flag.", 19)
doTeleportThing(cid, fromPosition, false)
end
elseif item.actionid == 6001 then
if getPlayerStorageValue(cid, t.blueStorage) == 1 then
if getPlayerStorageValue(cid, t.redFlag) == -1 and getGlobalStorageValue(t.redFlag) == -1 then
setPlayerStorageValue(cid, t.redFlag, 1)
setGlobalStorageValue(t.redFlag, 1)
repeatFlagOnPlayer(cid)
doBroadcastMessage(getCreatureName(cid) .. " has stolen the Red flag!")
else
doCreatureSay(cid, "The flag is not at home.", 19)
doTeleportThing(cid, fromPosition, false)
end
else
doCreatureSay(cid, "The flag is not at home.", 19)
doTeleportThing(cid, fromPosition, false)
end
end
if item.actionid == 6002 then
if getPlayerStorageValue(cid, t.redStorage) == 1 then
if getPlayerStorageValue(cid, t.blueFlag) == 1 and getGlobalStorageValue(t.blueFlag) == 1 then
setGlobalStorageValue(t.blueFlag, -1)
setPlayerStorageValue(cid, t.blueFlag, -1)
setGlobalStorageValue(t.redGoal, getGlobalStorageValue(t.redGoal)+1)
doBroadcastMessage("Current CTF Game Score:\nRed Team: " .. getGlobalStorageValue(t.redGoal) .. "\nBlue Team: " .. getGlobalStorageValue(t.blueGoal) .. "\nTen Scores to win!", 20)
doBroadcastMessage(getCreatureName(cid) .. " has scored 1 point for the Red Team!")
else
doCreatureSay(cid, "You dont have the flag.", 19)
doTeleportThing(cid, fromPosition, false)
end
elseif getPlayerStorageValue(cid, t.blueStorage) == 1 then
if getPlayerStorageValue(cid, t.redFlag) == 1 and getGlobalStorageValue(t.redFlag) == 1 then
setGlobalStorageValue(t.redFlag, -1)
setPlayerStorageValue(cid, t.redFlag, -1)
setGlobalStorageValue(t.blueGoal, getGlobalStorageValue(t.blueGoal)+1)
doBroadcastMessage("Current CTF Game Score:\nRed Team: " .. getGlobalStorageValue(t.redGoal) .. "\nBlue Team: " .. getGlobalStorageValue(t.blueGoal) .. "\nTen Scores to win!", 20)
doBroadcastMessage(getCreatureName(cid) .. " has scored 1 point for the Blue Team!")
else
doCreatureSay(cid, "You dont have the flag.", 19)
doTeleportThing(cid, fromPosition, false)
end
end
if getGlobalStorageValue(t.blueGoal) == 10 and getGlobalStorageValue(t.redGoal) < 10 then
for _, cid in ipairs(getPlayersOnline()) do
if getPlayerStorageValue(cid, t.blueStorage) == 1 then
setPlayerStorageValue(cid, t.blueStorage, -1)
doPlayerAddItem(cid, 9020, math.random(1, 6))
elseif getPlayerStorageValue(cid, t.redStorage) == 1 then
setPlayerStorageValue(cid, t.redStorage, -1)
end
doRemoveCondition(cid, CONDITION_OUTFIT)
setGlobalStorageValue(t.redGoal, 0)
setGlobalStorageValue(t.blueGoal, 0)
end
local FF = getPlayers().thisTable
if #FF > 1 then
for _, hh in ipairs(FF) do
doTeleportThing(hh, getTownTemplePosition(getPlayerTown(hh)), true)
end
end
elseif getGlobalStorageValue(t.redGoal) == 10 and getGlobalStorageValue(t.blueGoal) < 10 then
for _, cid in ipairs(getPlayersOnline()) do
if getPlayerStorageValue(cid, t.redStorage) == 1 then
setPlayerStorageValue(cid, t.redStorage, -1)
doPlayerAddItem(cid, 9020, math.random(1, 6))
elseif getPlayerStorageValue(cid, t.blueStorage) == 1 then
setPlayerStorageValue(cid, t.blueStorage, -1)
end
doRemoveCondition(cid, CONDITION_OUTFIT)
setGlobalStorageValue(t.redGoal, 0)
setGlobalStorageValue(t.blueGoal, 0)
end
local F = getPlayers().thisTable
if #F > 1 then
for _, h in ipairs(F) do
doTeleportThing(h, getTownTemplePosition(getPlayerTown(h)), true)
end
end
end
end
else
doRemoveCreature(cid)
end
return true
end
movements.xml adicione:
<movevent type="StepIn" actionid="6000-6002" event="script" value="test.lua"/>
data/globalevents/scripts/start.lua adicione:
setGlobalStorageValue(19000, 0) setGlobalStorageValue(19001, 0)
Posições: Podem ser alteradas!
mple position = {x = 1025, y = 1028, z = 7}
waiting room pos = {x = 1009, y = 1027, z = 7},
red team = {x = 982, y = 1022, z = 7},
blue team = {x = 993, y = 1033, z = 7},
score position = {x = 987, y = 1027, z = 7},
red team flag position = {x = 987, y = 1032, z = 7},
blue team flag position = {x = 987, y = 1023, z = 7}
Depois execute essa query:
UPDATE `players` SET posx = 1025, posy = 1028, posz = 7
Editado Janeiro 31 por Beeki
info
Grupo: Banidos
Registrado: 21/01/12
Posts: 842
Reputação: +234
Char no Tibia: Stephan

tem como dar uma explicadinha como configura?
@ edited
o que seria essa posição ?
UPDATE `players` SET posx = 1025, posy = 1028, posz = 7
Editado Janeiro 31 por AnneMotta
info
Grupo: Barão
Registrado: 24/01/11
Posts: 245
Reputação: +10

não entendi isso:
Depois execute essa query:
UPDATE `players` SET posx = 1025, posy = 1028, posz = 7
tem como explicar?
Moderadores se for flood me Desculpe
o que seria:
mple position = {x = 1025, y = 1028, z = 7}
e
score position = {x = 987, y = 1027, z = 7},
info
Grupo: Banidos
Registrado: 21/01/12
Posts: 842
Reputação: +234
Char no Tibia: Stephan
então caros amiguinhos é o seguinte, eu estava procurando o eventos CTF para o meu servidor, vim no xtibia, rodei, rodei, rode e nada, até que achei um topico do SkyDan~ e éra em MOD, maas ele removeu o script do topico.
Então estou a que pedindo para alguem caridoso possa fazar os scripts ou postar algum ja pronto.
Vou explicar mais o menos como funciona.
1 - Aparece uma mensagem na tela de todos os player em vermelhor avisando que 1 teleport abrira em tal lugar em x minutos.
2 - hora que o teleport abrir os players entrão (só player lv 100+) ai eles são levados para uma sala todos que entrarem no teleport, ai fala que denovo para todos players em vermelho que em x minutos o teleport se fechara e o evento começara.
3 - assim que o teleport se fechar os players são teleportados para o local de batalha e os times são divididos aleatoriamente sempre balanceado.
4 - cada time ( verde e vermelho ) tem uma bandeira em sua base e eles tem o dever de não deixar o outro time catar a bandeira ( se pega a bandeira paçando sobre um piso ).
5 - ganha o evento quem catar a bandeira do adversario 5 vezes ou então depois de x minutos de evento quem catou mais ganha.
6 - os premios são para todo o time vencedor mais tipo são varios items que são entregues aleatoriamente.
Axo que é isso.
OBS: os players que morrem não perde level, nem items nem nada e todas vezes que eles morrerem voltam para sua base.
PS: se não funcionar este evento no servidor global compacto nem precisa postar >< no compacto não pega nen zombie event nen war system, preciso de mais deste evento!
alguma duvida só entrar em contato!
Editado Janeiro 30 por AnneMotta