-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.
-
Conteúdo Similar
-
- 0 respostas
- 681 visualizações
-
- 0 respostas
- 558 visualizações
-
- 0 respostas
- 1696 visualizações
-
- 0 respostas
- 1296 visualizações
-
- 1 resposta
- 2375 visualizações
-

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:
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))) endglobalevents.xml adicione:
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 enddata/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 endcreaturescripts.xml adicione:
login.lua adicione:
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 endmovements.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