Postado Agosto 5, 2013 11 anos muito bom cara, script bem feito. se eu quiser por pra abrir o evento com comando, vai afetar alguma coisa ou ja tem outros scripts com isso? Max adora cortar principalmente quando não precisa huehuehuehue Ot Design: https://discord.gg/VgtVRNmCD7
Postado Agosto 5, 2013 11 anos Olá! Caro Amigo Max, venho deste texto lhe agradeçer o quanto eu o precisava desse Script! Mais do que um presente, o que me deixou mais feliz foi sua atitude. Todos os agradecimentos seriam poucos para demonstrar a minha alegria e a satisfação por ter lembrado do meu script. Essa mensagem é um simples gesto de carinho diante da grandiosidade do seu coração. Agradeço mais uma vez pelo momento maravilhoso que você proporcionou com a sua lembrança. Saiba que você sempre teve o meu respeito e admiração. Por isso, diante dessa surpresa, eu não pude conter a minha ansiedade de dizer: Mil vezes obrigado e um grande abraço caro amigo Max! Conte comigo oque preciso for. 10 Beijos. DEDICADO BRASIL Professional Internet Datacenter Tudo oque você precisa para ter certeza de que não há nada que vai estragar teus planos em seu projeto Gamer/Engine, nós somos uma empresa qualificada em Segurança em servidores, obtemos técnicos especializados, que possam lhe alertar sobre qualquer falha que você esteja sofrendo. - Visite o site
Postado Agosto 6, 2013 11 anos Autor Amigo talvez tenha entendido errado por minha falda de sintaxe no português eu peço desculpas, eu quero saber se talvez funcionem em poketibia e onde eu posso mudar algum ID se não funcionar como deveria. Olha, não tem nada que impeça de funcionar em Poketibias [: muito bom cara, script bem feito. se eu quiser por pra abrir o evento com comando, vai afetar alguma coisa ou ja tem outros scripts com isso? Obrigado! Essa nova versão só funciona automaticamente, com comando não abre mais. Olá! Caro Amigo Max, venho deste texto lhe agradeçer o quanto eu o precisava desse Script! Mais do que um presente, o que me deixou mais feliz foi sua atitude. Todos os agradecimentos seriam poucos para demonstrar a minha alegria e a satisfação por ter lembrado do meu script. Essa mensagem é um simples gesto de carinho diante da grandiosidade do seu coração. Agradeço mais uma vez pelo momento maravilhoso que você proporcionou com a sua lembrança. Saiba que você sempre teve o meu respeito e admiração. Por isso, diante dessa surpresa, eu não pude conter a minha ansiedade de dizer: Mil vezes obrigado e um grande abraço caro amigo Max! Conte comigo oque preciso for. 10 Beijos. Lol. Por nada cara ! [: -"Supra Omnes Lux Lucis" - Acima de todos brilha a Luz -
Postado Agosto 13, 2013 11 anos Oi MaXwEllDeN, Instalei o script, porém não entendi uma coisa... Quando os jogadores morrem, a bandeira não deveria voltar pro lugar de origem? Testei aqui com o mapa em áreas PVP + NoLogout e PVP sem o NoLogout, acontecendo o mesmo nos dois casos. O player volta para a base sem perder a bandeira. Além disso está dando um bug quando termina o evento. Segue imagem: Minha lib do evento: CTF_LIB = { waitpos = {x = 1155, y = 1036, z = 7}, -- Posição da sala de espera tppos = {x = 161, y = 54, z = 7}, -- Onde o TP vai aparecer days = {2, 3, 5, 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 = 2, -- Quantos pontos uma equipe precisa marcar para vencer teams = { ["Vermelho"] = { temple = 5, -- TownID da equipe vermelha outfit = {lookHead = 0, lookBody = 132, lookLegs = 113, lookFeet = 94}, flag = { id = 1435, flag_pos = {x = 1218, y = 1057, z = 7}, -- Posição onde a bandeira vermelha vai ser criada gnd_pos = {x = 1216, y = 1057, z = 7}, -- Onde os players da equipe vermelha entregarão a bandeira. }, }, ["Verde"] = { temple = 6, -- TownID da equipe verde outfit = {lookHead = 0, lookBody = 121, lookLegs = 101, lookFeet = 101}, flag = { id = 1437, flag_pos = {x = 1262, y = 1057, z = 7}, -- Posição onde a bandeira verde vai ser criada gnd_pos = {x = 1264, y = 1057, 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) setPlayerStorageValue(uid, 16700, -1) doPlayerSetTown(uid, getPlayerStorageValue(uid, 16701)) doTeleportThing(uid, getTownTemplePosition(getPlayerStorageValue(uid, 16701))) setPlayerStorageValue(uid, 16701, -1) doRemoveCondition(uid, CONDITION_OUTFIT) doCreatureAddHealth(uid, getCreatureMaxHealth(uid)) doCreatureAddMana(uid, getCreatureMaxMana(uid)) 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] doRemoveItem(flag.uid, 1) v.flag.gnd_pos.stackpos = 0 local gnd = getThingFromPos(v.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 local flag = doCreateItem(CTF.teams[team].flag.id, 1, CTF.teams[team].flag.flag_pos) doItemSetAttribute(flag, "aid", 63218) setPlayerStorageValue(uid, 16702, -1) 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) if finish then CTF.close(finish) end return true end function CTF.close(win) for i, _ in pairs(CTF.teams) do setGlobalStorageValue(score_sto, 0) end 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() 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 Meu CTFMax.lua do movements: 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 CTF.addPoint(cid) doTeleportThing(cid, fromPosition) CTF.returnFlag(cid) return true end Fora isso, toda vez que muda algo no CTFMax.lua da pasta movements, dá um erro no console na hora de abrir o server. Se eu digito a mesma coisa que estava antes, persiste o erro. Só volta a funcionar quando coloco de volta o arquivo original do download. Estou usando TFS 0.4.0 Pode me ajudar? Editado Agosto 13, 2013 11 anos por johnarde (veja o histórico de edições)
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.