Postado Dezembro 1, 2013 11 anos Tenta esse ae --[[ Capture The Flag System Author: Maxwell Denisson(MaXwEllDeN) Version: 2.0 [REMAKE] 22/04/2013 Contact: [email protected] ]] CTF_LIB = { waitpos = {x = 992, y = 840, z =7}, -- Posição da sala de espera tppos = {x = 1000, y = 995, z =7}, -- Onde o TP vai aparecer days = {1, 2, 3, 4, 5, 6, 7}, -- Dias que o evento vai abrir xp_percent = 100.0, -- Porcentagem de exp que o player vai ganhar timeclose = 3, -- Tempo, em minutos, para iniciar o CTF winp = 10, -- Quantos pontos uma equipe precisa marcar para vencer teams = { ["Vermelho"] = { temple = 3, -- TownID da equipe vermelha outfit = {lookHead = 0, lookBody = 132, lookLegs = 113, lookFeet = 94}, flag = { id = 1435, flag_pos = {x = 1051, y = 916, z =7}, -- Posição onde a bandeira vermelha vai ser criada gnd_pos = {x = 1052, y = 916, z =7}, -- Onde os players da equipe vermelha entregarão a bandeira. }, }, ["Verde"] = { temple = 4, -- TownID da equipe verde outfit = {lookHead = 0, lookBody = 121, lookLegs = 101, lookFeet = 101}, flag = { id = 1437, flag_pos = {x = 948, y = 889, z =7}, -- Posição onde a bandeira verde vai ser criada gnd_pos = {x = 949, y = 889, 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[i] = 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[i] = 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[i], 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[i]) if getGlobalStorageValue(score_sto[i]) >= 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[i], 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) doPlayerAddItem(cid,2157,1) 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 Pronto para so tenta esse ae... Editado Dezembro 1, 2013 11 anos por kbpaulo (veja o histórico de edições) Meus topicos.[Gesior]Layout pokemon vrs1.0[854]OtServer Digimon Vrs.1.1 Spoiler http://free.timeanddate.com/countdown/i48ub0vi/n213/cf11/cm0/cu4/ct0/cs0/ca0/cr0/ss0/cac009/cpc000/pcf90/tcfff/fs100/szw448/szh189/tatTempo%20Para%20Resetar/tac000/tptDigimon%20World%20Cerberus%20Online/tpc000/matDigimon%20World%20Cerberus%20Online/mac000/mptEstá%20Online%20à/mpc000/iso2014-07-19T00:01:00/bas3/bat8/bac00f/pa3 Meu Servidor Digimon World Cerberus OnlineDigimon World Cerberus Online Agradecer sempre a todos que ajudaram, o server a ficar pronto deis de Sprites que não conheço,scripts, etc....como o jogo esta na internet e para todos usarem vlw a todos bjus...
Postado Dezembro 1, 2013 11 anos Autor Ok deu certo mais agora tem um pequeno problema que eu não tinha reparado,o vencedor do evento fica dentro dele.. por exemplo o ultimo que entrega a bandeira para vencer fica dentro do evento !! Ajudei = REP+ Não dou suporte por PM qualquer dúvida procure no fórum,caso não encontre oque procura crie um tópico. [email protected]" /> | TFS 0.4 DEV | %5Bcreaturescript%5D Icones no minimap com descrição%5Btalkaction%5D Adicionar ou remover VIP do player.%5Bcreaturescripts%5D Senha para porta%5Btalkaction%5D Mandar mensagem para pasta do servidorMapa Evento War Castle%5Baction%5D Canoa em MovimentoTeleport Scroll System%5Bcreaturescripts%5D Recompensa por level para X vocations%5Btalkaction%5D Adicionar X item para o player%5Btalkactions%5D Adicionar item para todos players online%5Baction%5D Item que teleporta o player para house[action+movement] Passaporte para entrar no barco
Postado Dezembro 2, 2013 11 anos quer que teleport ele de la e facil... Meus topicos.[Gesior]Layout pokemon vrs1.0[854]OtServer Digimon Vrs.1.1 Spoiler http://free.timeanddate.com/countdown/i48ub0vi/n213/cf11/cm0/cu4/ct0/cs0/ca0/cr0/ss0/cac009/cpc000/pcf90/tcfff/fs100/szw448/szh189/tatTempo%20Para%20Resetar/tac000/tptDigimon%20World%20Cerberus%20Online/tpc000/matDigimon%20World%20Cerberus%20Online/mac000/mptEstá%20Online%20à/mpc000/iso2014-07-19T00:01:00/bas3/bat8/bac00f/pa3 Meu Servidor Digimon World Cerberus OnlineDigimon World Cerberus Online Agradecer sempre a todos que ajudaram, o server a ficar pronto deis de Sprites que não conheço,scripts, etc....como o jogo esta na internet e para todos usarem vlw a todos bjus...
Postado Dezembro 3, 2013 11 anos Autor Sim quero que teleporte o ultimo player a entregar a bandeira para vencer o evento pro templo como os outros ! Pode arrumar isso para mim tambem brother ? =D Ajudei = REP+ Não dou suporte por PM qualquer dúvida procure no fórum,caso não encontre oque procura crie um tópico. [email protected]" /> | TFS 0.4 DEV | %5Bcreaturescript%5D Icones no minimap com descrição%5Btalkaction%5D Adicionar ou remover VIP do player.%5Bcreaturescripts%5D Senha para porta%5Btalkaction%5D Mandar mensagem para pasta do servidorMapa Evento War Castle%5Baction%5D Canoa em MovimentoTeleport Scroll System%5Bcreaturescripts%5D Recompensa por level para X vocations%5Btalkaction%5D Adicionar X item para o player%5Btalkactions%5D Adicionar item para todos players online%5Baction%5D Item que teleporta o player para house[action+movement] Passaporte para entrar no barco
Postado Dezembro 4, 2013 11 anos achei isso doPlayerAddExperience(cid, xp) doPlayerAddItem(cid,2157,1) e adiciona mais isso doTeleportThing(cid, {x = 161, y = 57, z = 7}) ai so trocar as coordenadas para se templo.... se ajudei reporta para fechar topico Meus topicos.[Gesior]Layout pokemon vrs1.0[854]OtServer Digimon Vrs.1.1 Spoiler http://free.timeanddate.com/countdown/i48ub0vi/n213/cf11/cm0/cu4/ct0/cs0/ca0/cr0/ss0/cac009/cpc000/pcf90/tcfff/fs100/szw448/szh189/tatTempo%20Para%20Resetar/tac000/tptDigimon%20World%20Cerberus%20Online/tpc000/matDigimon%20World%20Cerberus%20Online/mac000/mptEstá%20Online%20à/mpc000/iso2014-07-19T00:01:00/bas3/bat8/bac00f/pa3 Meu Servidor Digimon World Cerberus OnlineDigimon World Cerberus Online Agradecer sempre a todos que ajudaram, o server a ficar pronto deis de Sprites que não conheço,scripts, etc....como o jogo esta na internet e para todos usarem vlw a todos bjus...
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.