Ir para conteúdo

Featured Replies

Postado

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 arena
local pos2_arena = {x = 1224, y = 1085, z = 12} -- ALTERAR pos do canto inferior direito da arena
if 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 then
total_players = total_players + 1
player_escolhido = players

end
i = i + 1
end

if total_players == 1 then
setGlobalStorageValue(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 premio
doBroadcastMessage("O Player "..(getPlayerName(player_escolhido)).." é o Vencedor do Evento.",22) -- ALTERAR frase para todos, do ganhador do premio
return TRUE
else
if total_players <= 0 then
setGlobalStorageValue(storage, -1)
doBroadcastMessage("Todos os Jogadores Se mataram, fim do Evento.",22) -- ALTERAR frase para todos, do ganhador do premio
return TRUE
end
end

return TRUE
end

Script dentro do talkactions se precisar:

Spoiler

function onSay(cid, words, param)

if getGlobalStorageValue(24658) >= 0 then
doPlayerSendTextMessage(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 comando
setGlobalStorageValue(24658, 0) -- ALTERAR storage usado no sistema, deixar todos iguais
addEvent(
function ()


local pos_templo = {x = 1028, y = 915, z = 6} -- ALTERAR coordenada do templo do seu ot server
doBroadcastMessage("Evento Iniciado.",22) -- ALTERAR frase quando todos forem para a arena
setGlobalStorageValue(24658, 1) -- ALTERAR storage usado no sistema, deixar todos iguais
local players = getPlayersOnline()
local i = 1
local total_player = 0

while i <= #players do
local pos_player = getPlayerPosition(players)
local pos1_espera = {x = 1002, y = 800, z = 12} -- ALTERAR pos do canto superior esquerdo da sala de espera
local pos2_espera = {x = 1016, y = 809, z = 12} -- ALTERAR pos do canto inferior direito da sala de espera
if 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 then
total_player = total_player + 1
end

i = i + 1
end

i = 1
if total_player <= 1 then
doBroadcastMessage("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 do
local pos_player = getPlayerPosition(players)
local pos1_espera = {x = 1002, y = 800, z = 12} -- ALTERAR pos do canto superior esquerdo da sala de espera
local pos2_espera = {x = 1016, y = 809, z = 12} -- ALTERAR pos do canto inferior direito da sala de espera
if 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 then
doTeleportThing(players, pos_templo)
end

i = i + 1
end

return TRUE
end 

while i <= #players do
local pos_player = getPlayerPosition(players)
local pos1_espera = {x = 1002, y = 800, z = 12} -- ALTERAR pos do canto superior esquerdo da sala de espera
local pos2_espera = {x = 1016, y = 809, z = 12} -- ALTERAR pos do canto inferior direito da sala de espera
local pos_arena = {x = 1095, y = 963, z = 12} -- ALTERAR do inicio da arena
if 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 then
doTeleportThing(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 arena
end

i = i + 1
end

end
,tempo_espera)

return true
end

 

Editado por King Laker (veja o histórico de edições)

VlVKQKC.png&key=d5c17620ae9567a1f898dd7a

 

 

 

  • 532144234_Logo_NTO_BLOOD_Finish_HIM_By_Antonio_Luckas(3).png.fd58d1af125a7e82ccdd751637e9ca93.png

Resolvido por Vodkart

Ir para solução
  • Respostas 13
  • Visualizações 445
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • 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

  • npc   local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureA

  • dai usa assim:   npcgoup.lua function onTimer() local pos = {x=1050,y=1060,z=7} -- Local onde aparece o npc local npc = doCreateNpc("Goup", pos ) -- Altere o (Goup) pelo nome do seu n

Postado
  • 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

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Postado
  • 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?

VlVKQKC.png&key=d5c17620ae9567a1f898dd7a

 

 

 

  • 532144234_Logo_NTO_BLOOD_Finish_HIM_By_Antonio_Luckas(3).png.fd58d1af125a7e82ccdd751637e9ca93.png
Postado

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.

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Postado
  • 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 por King Laker (veja o histórico de edições)

VlVKQKC.png&key=d5c17620ae9567a1f898dd7a

 

 

 

  • 532144234_Logo_NTO_BLOOD_Finish_HIM_By_Antonio_Luckas(3).png.fd58d1af125a7e82ccdd751637e9ca93.png

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo