Postado Agosto 7, 2014 10 anos olá galera do TK gostaria de saber como eu faço para arrumar o capture de flag system. o problema é o globalevent abre o evento. abre o teleport e manda para a sala de espera mais depois disso não acontece mais nada não manda para o local do evento depois de 1min < o evento ta configurado para fechar depois de um minuto e começar tals mais passa esse 1min e não manda os players para o evento. tambem se possivel gostaria de trocar em vez de aparecer um teleport gostaria que falasse !evento3 < e vão direto para a sala de espera para ir para o evento se alguem puder ajudar agradeço +rep claro bom postarei as scripts do sistema. bom vamos lá data/lib/ctfmax.lua CTF_LIB = { waitpos = {x = 1057, y = 714, z =7}, -- Posição da sala de espera tppos = {x = 1016, y = 889, z =7}, -- Onde o TP vai aparecer days = {1, 2, 3, 4, 5, 6, 7}, -- Dias que o evento vai abrir xp_percent = 0.5, -- Porcentagem de exp que o player vai ganhar timeclose = 1, -- Tempo, em minutos, para iniciar o CTF winp = 15, -- Quantos pontos uma equipe precisa marcar para vencer teams = { ["Vermelho"] = { temple = 7, -- TownID da equipe vermelha outfit = {lookHead = 0, lookBody = 132, lookLegs = 113, lookFeet = 94}, flag = { id = 1435, flag_pos = {x = 1011, y = 707, z =7}, -- Posição onde a bandeira vermelha vai ser criada gnd_pos = {x = 1013, y = 707, z =7}, -- Onde os players da equipe vermelha entregarão a bandeira. }, }, ["Verde"] = { temple = 8, -- TownID da equipe verde outfit = {lookHead = 0, lookBody = 121, lookLegs = 101, lookFeet = 101}, flag = { id = 1437, flag_pos = {x = 1010, y = 734, z =7}, -- Posição onde a bandeira verde vai ser criada gnd_pos = {x = 1012, y = 735, z =7}, -- Onde os players da equipe verde entregarão a bandeira. }, }, }, } local CTF = CTF_LIB function CTF.getMembers() local members = {} for _, cid in pairs(getPlayersOnline()) do if getPlayerStorageValue(cid, 16700) ~= -1 then table.insert(members, cid) end end return members end function CTF.getTeamMembers(team) local members = {} for _, cid in pairs(CTF.getMembers()) do if getPlayerStorageValue(cid, 16700) == team then table.insert(members, cid) end end return members end function CTF.removePlayer(uid) doPlayerSetTown(uid, getPlayerStorageValue(uid, 16701)) doTeleportThing(uid, getTownTemplePosition(getPlayerStorageValue(uid, 16701))) doRemoveCondition(uid, CONDITION_OUTFIT) doCreatureAddHealth(uid, getCreatureMaxHealth(uid)) doCreatureAddMana(uid, getCreatureMaxMana(uid)) setPlayerStorageValue(uid, 16701, -1) setPlayerStorageValue(uid, 16700, -1) return true end function CTF.addPlayer(uid) local team = CTF.getTeamLivre() local n_team = CTF.teams[team] setPlayerStorageValue(uid, 16700, team) setPlayerStorageValue(uid, 16701, getPlayerTown(uid)) doPlayerSetTown(uid, n_team.temple) doTeleportThing(uid, CTF.waitpos) doPlayerSendTextMessage(uid, 22, "Você agora faz parte do time ".. team .. ".") local outfit = getCreatureOutfit(uid) for i, v in pairs(n_team.outfit) do outfit = v end registerCreatureEvent(uid, "CTFLogout") registerCreatureEvent(uid, "CTFAttack") registerCreatureEvent(uid, "CTFCombat") registerCreatureEvent(uid, "CTFDeath") doSetCreatureOutfit(uid, outfit, -1) return true end function CTF.getTeamLivre() local teams = {} for i, _ in pairs(CTF.teams) do table.insert(teams, {i, #CTF.getTeamMembers(i)}) end if (teams[1][2] < teams[2][2]) then return teams[1][1] elseif (teams[1][2] > teams[2][2]) then return teams[2][1] end return teams[math.random(2)][1] end function CTF.broadCast(msg, class) for _, uid in pairs(CTF.getMembers()) do doPlayerSendTextMessage(uid, class or 20, msg) end return true end function CTF.getFlagTeam(flag) for i, v in pairs(CTF.teams) do if v.flag.id == flag then return i end end return "" end local score_sto = {} local a = 0 for i, _ in pairs(CTF.teams) do score_sto = 42314 + a a = a + 1 end function CTF.createFlags() for i, v in pairs(CTF.teams) do local flag = doCreateItem(v.flag.id, 1, v.flag.flag_pos) doItemSetAttribute(flag, "aid", 63218) v.flag.gnd_pos.stackpos = 0 local gnd = getThingFromPos(v.flag.gnd_pos).uid doItemSetAttribute(gnd, "aid", 63200) doItemSetAttribute(gnd, "team", i) setGlobalStorageValue(score_sto, 0) end return true end function CTF.removeFlags() for i, v in pairs(CTF.teams) do local flag = doFindItemInPos({v.flag.id}, v.flag.flag_pos)[1] if flag then doRemoveItem(flag.uid, 1) end v.flag.gnd_pos.stackpos = 0 local gnd = getThingFromPos(v.flag.gnd_pos).uid doItemSetAttribute(gnd, "aid", 0) end return true end function CTF.start() doRemoveItem(doFindItemInPos({1387}, CTF.tppos)[1].uid, 1) setGlobalStorageValue(16705, -1) if #CTF.getMembers() < 2 then doBroadcastMessage("O CTF não pôde ser iniciado por falta de players.") for _, cid in pairs(CTF.getMembers()) do CTF.removePlayer(cid) end return false end CTF.broadCast("O CTF foi iniciado. Bom jogo!") for _, uid in pairs(CTF.getMembers()) do doTeleportThing(uid, getTownTemplePosition(getPlayerTown(uid))) end CTF.createFlags() return true end function CTF.returnFlag(uid, status) local team = getPlayerStorageValue(uid, 16702) if status then local msg = "O player ".. getCreatureName(uid) .. ", estava com a bandeira do time ".. team .. " " if status == 1 then msg = msg .. "e foi eliminado. " elseif status == 2 then msg = "e foi removido do evento. " end msg = msg .. "Portanto a bandeira do time ".. team .. " foi devolvida." CTF.broadCast(msg) end if CTF.teams[team] then local flag = doCreateItem(CTF.teams[team].flag.id, 1, CTF.teams[team].flag.flag_pos) doItemSetAttribute(flag, "aid", 63218) setPlayerStorageValue(uid, 16702, -1) end return true end function CTF.addPoint(uid) local finish local msg = "Capture The Flag:" setGlobalStorageValue(score_sto[getPlayerStorageValue(uid, 16700)], getGlobalStorageValue(score_sto[getPlayerStorageValue(uid, 16700)]) + 1) for i, _ in pairs(CTF.teams) do msg = msg .. "\nTime ".. i .. ": ".. getGlobalStorageValue(score_sto) if getGlobalStorageValue(score_sto) >= CTF.winp then finish = i end end CTF.broadCast(getCreatureName(uid) .. " marcou um ponto para o time ".. getPlayerStorageValue(uid, 16700) .. ".", 22) CTF.broadCast(msg) CTF.returnFlag(uid) if finish then CTF.close(finish) return "close" end return true end function CTF.close(win) if not win then doBroadcastMessage("O CTF acabou sem vencedores.") else CTF.broadCast("O time ".. win .. " marcou ".. CTF.winp .. " ponto(s) e venceu o evento.") end for _, cid in pairs(CTF.getMembers()) do if getPlayerStorageValue(cid, 16700) == win then local xp = math.ceil(getPlayerExperience(cid) * (CTF.xp_percent / 100), 215) doPlayerSendTextMessage(cid, 22, "Parabéns! Você ganhou o evento e obteve ".. CTF.xp_percent .."% de sua experiência total(".. xp ..").") doSendAnimatedText(getThingPos(cid), xp, 215) doPlayerAddExperience(cid, xp) end --[[ if getPlayerStorageValue(cid, 16702) ~= -1 then CTF.returnFlag(cid) end]] CTF.removePlayer(cid) end CTF.removeFlags() for i, _ in pairs(CTF.teams) do setGlobalStorageValue(score_sto, 0) end return true end local function Alert(uid) if (isCreature(uid)) then if getPlayerStorageValue(uid, 16702) == -1 or getPlayerStorageValue(uid, 16700) == -1 then return false end doSendAnimatedText(getThingPos(uid), "Flag!", math.random(50, 200)) local bla = {18, 19, 21, 22, 23, 24} doSendMagicEffect(getThingPos(uid), bla[math.random(#bla)]) if (os.time() - getPlayerStorageValue(uid, 16703) >= 60) then CTF.returnFlag(uid) return setPlayerStorageValue(uid, 16703, -1) end addEvent(Alert, 500, uid) return true end return false end function CTF.stealFlag(uid, team) setPlayerStorageValue(uid, 16702, team) setPlayerStorageValue(uid, 16703, os.time()) CTF.broadCast(getCreatureName(uid) .. " roubou a bandeira do time ".. team .. "!") Alert(uid) return true end function doFindItemInPos(ids, pos) -- By Undead Slayer local results = {} for _ = 0, 255 do local findPos = {x = pos.x, y = pos.y, z = pos.z, stackpos = _} if isInArray(ids, getThingFromPos(findPos).itemid) then table.insert(results, getThingFromPos(findPos)) end end return results end data/movements/scripts/ctfmax.lua local CTF = CTF_LIB function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) local team = getItemAttribute(item.uid, "team") if team ~= getPlayerStorageValue(cid, 16700) then return doTeleportThing(cid, fromPosition) end if getPlayerStorageValue(cid, 16702) == -1 then doPlayerSendCancel(cid, "Você não está com a bandeira.") return doTeleportThing(cid, fromPosition) end if CTF.addPoint(cid) ~= "close" then doTeleportThing(cid, fromPosition) end return true end data/movements/scripts/CTFTeleport.lua local CTF = CTF_LIB function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if not isPlayer(cid) then return false end CTF.addPlayer(cid) return true end data/creaturescripts/scripts/ctfmax.lua local CTF = CTF_LIB function onStatsChange(cid, attacker, type, combat, value) if getPlayerStorageValue(cid, 16700) ~= -1 and type == 1 and getCreatureHealth(cid) - value <= 0 then if getPlayerStorageValue(cid, 16702) ~= -1 then CTF.returnFlag(cid, 1) end doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doCreatureAddMana(cid, getCreatureMaxMana(cid)) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) return false end return true end function onLogout(cid) if getPlayerStorageValue(cid, 16700) ~= -1 then CTF.removePlayer(cid) end return true end function onCombat(cid, target) if getPlayerStorageValue(cid, 16700) ~= -1 then if getPlayerStorageValue(cid, 16700) == getPlayerStorageValue(target, 16700) then return false end end return true end function onAttack(cid, target) if getPlayerStorageValue(cid, 16700) ~= -1 then if getPlayerStorageValue(cid, 16700) == getPlayerStorageValue(target, 16700) then return false end end return true end Editado Agosto 7, 2014 10 anos por brunds (veja o histórico de edições) Projeto ATS (Naruto)Informações AbaixoFacebookYoutubeDiscord Tutoriais / ConteúdosClique Aqui
Postado Agosto 7, 2014 10 anos Poste o script =s Entenda tudo sobre VPS, DEDICADOS & HOSPEDAGENS. => Clique aqui Global Full Download 10.9x - TFS 1.2/FERUMBRAS/KRAILOS. => Clique aqui Muitos querem aquilo que você tem, mas vão desistir quando souberem o preço que você pagou. lu.lukinha [email protected]
Postado Agosto 8, 2014 10 anos Autor #edit Tópico Atualizado com as scripts @UP Editado Agosto 7, 2014 10 anos por brunds (veja o histórico de edições) Projeto ATS (Naruto)Informações AbaixoFacebookYoutubeDiscord Tutoriais / ConteúdosClique Aqui
Postado Agosto 16, 2016 8 anos É simples o script não tem bug você não ta configurando direto ta fazendo em alguma city ou em lugar criado por você ? Pois os playes são teleportados para o temple ou town ou seja eles vão pra alguma city do seu mapa. Como resolver ou você coloca pra acontece o evento na cidade que eles tão teleportando depois de 1 minuto, ou vc configura no rme a town em onde vc quer que o evento aconteça. espero te ajudado flws.
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.