Bom Encontrei Esse Script Aqui No Xtibia Mais a Pess0a Que Postou Diz Que Não é Dele o Script e Não Vai Sanar Minha Duvida...
Então Queria Uma Explicação de Como Usar Este Script...
Bom Segue o Post Da Pess0a Que Disponibilizou O Script:
Por Favor Me Expliquem o Que Significa cada parte ai e la em baixo tem umas positions do map que não sei ao certo o que por e uma query que não sei onde por...
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
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
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
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
Pergunta
JumentoCuzaum 10
Bom Encontrei Esse Script Aqui No Xtibia Mais a Pess0a Que Postou Diz Que Não é Dele o Script e Não Vai Sanar Minha Duvida...
Então Queria Uma Explicação de Como Usar Este Script...
Bom Segue o Post Da Pess0a Que Disponibilizou O Script:
Por Favor Me Expliquem o Que Significa cada parte ai e la em baixo tem umas positions do map que não sei ao certo o que por e uma query que não sei onde por...
globalevents/scripts/ctf.lua adicione:
globalevents.xml adicione:
data/creaturescripts/scripts/ctf_target.lua adicione:
data/creaturescripts/scripts/stats_ctf.lua adicione:
creaturescripts.xml adicione:
login.lua adicione:
data/movements/scripts/test.lua adicione:
movements.xml adicione:
data/globalevents/scripts/start.lua adicione:
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
Se Alguem Ajudar +REP
...
Link para o comentário
https://xtibia.com/forum/topic/186956-explica%C3%A7%C3%A3o-de-uma-script-urgente/Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados