Postado Junho 20, 2018 7 anos Olá, meu evento pvp funciona até a parte de levar o player para o evento e tal (pra sala de espera depois para o evento) e depois na hora de entregar o premio, ele não leva o player para o templo e entrega o premio, gostaria de dar 2 itens diferentes com quantias diferentes tem como ajustar isto na script? (se possivel os premios dentro de uma ou 2 bags seria no total 18 slots o premio 1,5k de gold e 300 de uma moeda especial) gostaria também se possivel que tivesse como marcar hora do evento para acontecer mas se não tiver como ou se não souber tudo bem. Script dentro do globalevents: Spoiler function onThink(interval, lastExecution) local total_players = 0 local storage = 24658 -- ALTERAR storage usado no sistema deixar todos iguais local item_premio = 2160 -- ALTERAR item dado de premio, caso não queira dar item, coloque 2160 local item_quantidade_premio = 1500 -- ALTERAR quantidade do item ganho, caso não queira dar item , coloque 0 local player_escolhido = 0 local players = getPlayersOnline() local i = 1 local pos_templo = {x = 1028, y = 915, z = 6} -- ALTERAR coordenada do templo do seu ot server if getGlobalStorageValue(storage) == 1 then else return TRUE end while i <= #players do local pos_player = getPlayerPosition(players)local pos1_arena = {x = 1024, y = 892, z = 12} -- ALTERAR pos do canto superior esquerdo da arenalocal pos2_arena = {x = 1224, y = 1085, z = 12} -- ALTERAR pos do canto inferior direito da arenaif pos_player.x >= pos1_arena.x and pos_player.y >= pos1_arena.y and pos_player.x <= pos2_arena.x and pos_player.y <= pos2_arena.y thentotal_players = total_players + 1player_escolhido = players endi = i + 1end if total_players == 1 thensetGlobalStorageValue(storage, -1)doTeleportThing(player_escolhido, pos_templo)doPlayerAddItem(player_escolhido, item_premio, item_quantidade_premio)doPlayerSendTextMessage(player_escolhido, MESSAGE_STATUS_CONSOLE_BLUE, "Você é o Vencedor do Evento.") -- ALTERAR frase para o vencedor do premiodoBroadcastMessage("O Player "..(getPlayerName(player_escolhido)).." é o Vencedor do Evento.",22) -- ALTERAR frase para todos, do ganhador do premioreturn TRUEelseif total_players <= 0 thensetGlobalStorageValue(storage, -1)doBroadcastMessage("Todos os Jogadores Se mataram, fim do Evento.",22) -- ALTERAR frase para todos, do ganhador do premioreturn TRUEendend return TRUEend Script dentro do talkactions se precisar: Spoiler function onSay(cid, words, param) if getGlobalStorageValue(24658) >= 0 thendoPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Evento Já esta Online.")end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Evento Acabou de Ser Ativado.") local tempo_espera = 60 * 1000 -- ALTERAR tempo de espera na sala, 1 minuto doBroadcastMessage("Evento PVP foi Ativado.",22) -- ALTERAR frase que aparece para todos quando usar o comandosetGlobalStorageValue(24658, 0) -- ALTERAR storage usado no sistema, deixar todos iguaisaddEvent(function () local pos_templo = {x = 1028, y = 915, z = 6} -- ALTERAR coordenada do templo do seu ot serverdoBroadcastMessage("Evento Iniciado.",22) -- ALTERAR frase quando todos forem para a arenasetGlobalStorageValue(24658, 1) -- ALTERAR storage usado no sistema, deixar todos iguaislocal players = getPlayersOnline()local i = 1local total_player = 0 while i <= #players dolocal pos_player = getPlayerPosition(players)local pos1_espera = {x = 1002, y = 800, z = 12} -- ALTERAR pos do canto superior esquerdo da sala de esperalocal pos2_espera = {x = 1016, y = 809, z = 12} -- ALTERAR pos do canto inferior direito da sala de esperaif pos_player.x >= pos1_espera.x and pos_player.y >= pos1_espera.y and pos_player.x <= pos2_espera.x and pos_player.y <= pos2_espera.y thentotal_player = total_player + 1end i = i + 1end i = 1if total_player <= 1 thendoBroadcastMessage("Evento Cancelado, Players Insuficientes.",22) -- ALTERAR Frase de evento cancelado por falta de players setGlobalStorageValue(24658, -1) -- ALTERAR storage usado no sistema, deixar todos iguais while i <= #players dolocal pos_player = getPlayerPosition(players)local pos1_espera = {x = 1002, y = 800, z = 12} -- ALTERAR pos do canto superior esquerdo da sala de esperalocal pos2_espera = {x = 1016, y = 809, z = 12} -- ALTERAR pos do canto inferior direito da sala de esperaif pos_player.x >= pos1_espera.x and pos_player.y >= pos1_espera.y and pos_player.x <= pos2_espera.x and pos_player.y <= pos2_espera.y thendoTeleportThing(players, pos_templo)end i = i + 1end return TRUEend while i <= #players dolocal pos_player = getPlayerPosition(players)local pos1_espera = {x = 1002, y = 800, z = 12} -- ALTERAR pos do canto superior esquerdo da sala de esperalocal pos2_espera = {x = 1016, y = 809, z = 12} -- ALTERAR pos do canto inferior direito da sala de esperalocal pos_arena = {x = 1095, y = 963, z = 12} -- ALTERAR do inicio da arenaif pos_player.x >= pos1_espera.x and pos_player.y >= pos1_espera.y and pos_player.x <= pos2_espera.x and pos_player.y <= pos2_espera.y thendoTeleportThing(players, pos_arena)doPlayerSendTextMessage(players, MESSAGE_STATUS_CONSOLE_BLUE, "Batalhe pela sua vida.") -- ALTERAR frase que vai aparecer para o player quando ele entrar na arenaend i = i + 1end end,tempo_espera) return trueend Editado Junho 20, 2018 7 anos por King Laker (veja o histórico de edições) Olá, que tal dar uma olhada no meu projeto? https://discord.gg/bsNkbsyJ3W
Postado Junho 20, 2018 7 anos Solução testa assim, se funcionar depois eu coloco em determinado horário. function onThink(interval, lastExecution) local storage = {24658,24659} -- ALTERAR storage usado no sistema deixar todos iguais local items = {{2160,1500},{9020,300}} -- itens local arena = {{x = 1024, y = 892, z = 12},{x = 1224, y = 1085, z = 12}} -- area positions if getGlobalStorageValue(storage[1]) <= 0 then return true end function getPlayersInLixoEvent() local t = {} for _, pid in pairs(getPlayersOnline()) do if isInRange(getPlayerPosition(pid), arena[1], arena[2]) and getPlayerAccess(pid) < 3 then t[#t+1] = pid end end return t end function getLixoRewards(cid, items) local backpack = doPlayerAddItem(cid, 10518, 1) -- backpackID for _, i_i in ipairs(items) do local item, amount = i_i[1],i_i[2] if isItemStackable(item) or amount == 1 then doAddContainerItem(backpack, item, amount) else for i = 1, amount do doAddContainerItem(backpack, item, 1) end end end end function checkArenaLixo() if #getPlayersInLixoEvent() > 1 then addEvent(checkArenaLixo, 3000) -- ainda em batalha elseif #getPlayersInLixoEvent() == 1 then local cid = getPlayersInLixoEvent()[1] setGlobalStorageValue(storage[1], -1) setGlobalStorageValue(storage[2], -1) getLixoRewards(cid, items) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você é o Vencedor do Evento.") -- ALTERAR frase para o vencedor do premio doBroadcastMessage("O Player "..getPlayerName(cid).." é o Vencedor do Evento.",22) -- ALTERAR frase para todos, do ganhador do premio else setGlobalStorageValue(storage[1], -1) setGlobalStorageValue(storage[2], -1) doBroadcastMessage("Todos os Jogadores Se mataram, fim do Evento.",22) -- ALTERAR frase para todos, do ganhador do premio end end if getGlobalStorageValue(storage[2]) <= 0 then setGlobalStorageValue(storage[2], 1) addEvent(checkArenaLixo, 3000) end return true end [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Junho 20, 2018 7 anos Autor @Vodkart Funcionou, poderia adicionar também a script, um broadcast de quando os players entram no evento? algo tipo "o player NOME DO PLAYER esta participando do evento" 11 horas atrás, Vodkart disse: testa assim, se funcionar depois eu coloco em determinado horário. No horario que abrir você poderia fazer aparecer um NPC ao invés do teleport? Olá, que tal dar uma olhada no meu projeto? https://discord.gg/bsNkbsyJ3W
Postado Junho 20, 2018 7 anos kkkkk quem sabe quando eu tiver tempo eu refaço esse código, até pq tem que colocar uma sala de espera, etc... npc que apareça em determinado horário, tempo de espera e por ai vai. [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Junho 20, 2018 7 anos Autor @Vodkart ja tem sala de espera e um npc que te teleporta pra lá só preciso que o npc apareça em X local quando o evento iniciar X horas e que anuncie quando X player entrar para participar do evento Editado Junho 20, 2018 7 anos por King Laker (veja o histórico de edições) Olá, que tal dar uma olhada no meu projeto? https://discord.gg/bsNkbsyJ3W
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.