Ir para conteúdo
  • Cadastre-se

(Resolvido)Mudar recompensa evento


Ir para solução Resolvido por Flavio S,

Posts Recomendados

Olá gostaria de mudar a recompensa desse evento, atualmente ganha de premiação 2 premium points, eu gostaria que ganhasse ao invés disso 1 iron ingot ou qualquer item que eu venha colocar no futuro, como eu faço? segue o script!


local centeroffight = {x=24553,y=23720,z=7}
local waitingplace = {x=24554,y=23720,z=6}
local depotcenter = {x=32345,y=32223,z=7}
local MinimumPlayers = 2
local rewardpoints = 2





local function lmsclosed1()
    -- broadcastMessage("Last Man Standing event will start in 1 minutes. Portal is opened in depot", MESSAGE_STATUS_WARNING)
end


local function lmsclosed()

count = 0
        local spectators = getSpectators(waitingplace, 10, 10, false)
        if spectators ~= nil then
                for _, spectator in ipairs(spectators) do
                        if isPlayer(spectator) then    
                         count = count + 1
                       
                        end
                end
        end
        
        
        
if (count >= MinimumPlayers) then

broadcastMessage("Last Man Standing event portal closed and event started!", MESSAGE_STATUS_WARNING)

for _, pid in ipairs(getOnlinePlayers()) do
    if getPlayerStorageValue(pid, 25001) == 1 then
local playerids = getPlayerByName(pid)
doTeleportThing(playerids,centeroffight)
doSendMagicEffect(center, CONST_ME_TELEPORT)
    end
       
end

else

broadcastMessage("Not enough players to start Last man Standing event! Minimum: "..MinimumPlayers.." players. We have "..count.."!", MESSAGE_STATUS_WARNING)
setGlobalStorageValue(25002, 0)

for _, pid in ipairs(getOnlinePlayers()) do
    if getPlayerStorageValue(pid, 25001) == 1 then
local playerids = getPlayerByName(pid)
doTeleportThing(playerids,depotcenter)
doSendMagicEffect(depotcenter, CONST_ME_TELEPORT)
setPlayerStorageValue(pid, 25001, 0)

    end
end

end


return true
end





local function lmscheck()


count = 0
        local spectators = getSpectators(centeroffight, 500, 500, false)
        if spectators ~= nil then
                for _, spectator in ipairs(spectators) do
                        if isPlayer(spectator) then    
                         count = count + 1
                       
                        end
                end
        end

if count == 1 then


for _, pid in ipairs(getOnlinePlayers()) do
    if getPlayerStorageValue(pid, 25001) == 1 then
local playerids = getPlayerByName(pid)
setPlayerStorageValue(playerids, 25001, 0)
    end
end

        local spectators = getSpectators(centeroffight, 10, 10, false)
        if spectators ~= nil then
                for _, spectator in ipairs(spectators) do
                        if isPlayer(spectator) then  

            
            
doTeleportThing(spectator,depotcenter)
doSendMagicEffect(depotcenter, CONST_ME_TELEPORT)
broadcastMessage("Last Man Standing ended winner is: "..getPlayerName(spectator)..", reward is 2 premium points.", MESSAGE_STATUS_WARNING)
   
local accid = Player(spectator):getAccountId()
local points = rewardpoints
db.query("UPDATE `accounts` SET `premium_points` = `premium_points` + " .. points .. " WHERE `id` = " .. accid)
                     end
                end
        end
        


for _, pid in ipairs(getOnlinePlayers()) do
    if getPlayerStorageValue(pid, 25001) == 1 then
local playerids = getPlayerByName(pid)
setPlayerStorageValue(pid, 25001, 0)
end
end

stopEvent(lmscheck)

else
addEvent(lmscheck, 10*1000)
end
end



local function lms()
    broadcastMessage("Last Man Standing event will start in 2 minutes. Portal is opened in depot", MESSAGE_STATUS_WARNING)

    portalwhere = {x= 32349, y=32222, z=7}
    local portal = doCreateItem(11796,1,portalwhere)
  doSetItemActionId(portal, 25001)
  doSendMagicEffect(portalwhere, CONST_ME_TELEPORT)


    iteminfo = {x= 32348, y=32222, z=7}
    local item = doCreateItem(1431,1,iteminfo)
  doSetItemActionId(item, 25002)
  doSendMagicEffect(iteminfo, CONST_ME_TELEPORT)
 
addEvent(function() doRemoveItem(getTileItemById(portalwhere, 11796).uid) end, 120 * 1000)
addEvent(function() doSendMagicEffect(portalwhere, CONST_ME_TELEPORT) end, 120 * 1000)

addEvent(function() doRemoveItem(getTileItemById(iteminfo, 1431).uid) end, 120 * 1000)
addEvent(function() doSendMagicEffect(iteminfo, CONST_ME_TELEPORT) end, 120 * 1000)

addEvent(lmsclosed, 2*60*1000)
addEvent(lmsclosed1, 1*60*1000)
addEvent(lmscheck, 130*1000)

return true
end



function onThink(interval)

    broadcastMessage("Last Man Standing event will start in 3 minutes.", MESSAGE_STATUS_WARNING)
    addEvent(lms, 60*1000)

return true
end

 

 

Obrigado desde ja!
 


Up Editado por Andreselos1988 (veja o histórico de edições)

1545517_5.png

Link para o post
Compartilhar em outros sites
  • Solução

basta configurar em :

	local reward = {{ITEMID, QUANTIDADE}} -- {ITEMID, QUANTIDADE},
	local centeroffight = {x=24553,y=23720,z=7}
	local waitingplace = {x=24554,y=23720,z=6}
	local depotcenter = {x=32345,y=32223,z=7}
	local MinimumPlayers = 2
	local reward = {{ITEMID, QUANTIDADE}} -- {ITEMID, QUANTIDADE},

	local function lmsclosed1()
	    -- broadcastMessage("Last Man Standing event will start in 1 minutes. Portal is opened in depot", MESSAGE_STATUS_WARNING)
	end


	local function lmsclosed()

	count = 0
	        local spectators = getSpectators(waitingplace, 10, 10, false)
	        if spectators ~= nil then
	                for _, spectator in ipairs(spectators) do
	                        if isPlayer(spectator) then    
	                         count = count + 1
	                       
	                        end
	                end
	        end
	        
	if (count >= MinimumPlayers) then

	broadcastMessage("Last Man Standing event portal closed and event started!", MESSAGE_STATUS_WARNING)

	for _, pid in ipairs(getOnlinePlayers()) do
	    if getPlayerStorageValue(pid, 25001) == 1 then
	local playerids = getPlayerByName(pid)
	doTeleportThing(playerids,centeroffight)
	doSendMagicEffect(center, CONST_ME_TELEPORT)
	    end
	       
	end

	else

	broadcastMessage("Not enough players to start Last man Standing event! Minimum: "..MinimumPlayers.." players. We have "..count.."!", MESSAGE_STATUS_WARNING)
	setGlobalStorageValue(25002, 0)

	for _, pid in ipairs(getOnlinePlayers()) do
	    if getPlayerStorageValue(pid, 25001) == 1 then
	local playerids = getPlayerByName(pid)
	doTeleportThing(playerids,depotcenter)
	doSendMagicEffect(depotcenter, CONST_ME_TELEPORT)
	setPlayerStorageValue(pid, 25001, 0)

	    end
	end

	end


	return true
	end

local function lmscheck()

	count = 0
	        local spectators = getSpectators(centeroffight, 500, 500, false)
	        if spectators ~= nil then
	                for _, spectator in ipairs(spectators) do
	                        if isPlayer(spectator) then    
	                         count = count + 1               
	                        end
	                end
	        end

	if count == 1 then


	for _, pid in ipairs(getOnlinePlayers()) do
	    if getPlayerStorageValue(pid, 25001) == 1 then
	local playerids = getPlayerByName(pid)
	setPlayerStorageValue(playerids, 25001, 0)
	    end
	end

	        local spectators = getSpectators(centeroffight, 10, 10, false)
	        	if spectators ~= nil then
	                for _, spectator in ipairs(spectators) do
	                    if isPlayer(spectator) then           
				 			doTeleportThing(spectator,depotcenter)
							doSendMagicEffect(depotcenter, CONST_ME_TELEPORT)
								for x = 1, #reward do
									doPlayerAddItem(spectator, reward[x][1], reward[x][2])
								end
							broadcastMessage("Last Man Standing ended winner is: "..getPlayerName(spectator)..".", MESSAGE_STATUS_WARNING)	
				        end
				    end
				end
	        


	for _, pid in ipairs(getOnlinePlayers()) do
	    if getPlayerStorageValue(pid, 25001) == 1 then
	local playerids = getPlayerByName(pid)
	setPlayerStorageValue(pid, 25001, 0)
	end
	end

	stopEvent(lmscheck)

	else
		addEvent(lmscheck, 10*1000)
	end
end



local function lms()
	broadcastMessage("Last Man Standing event will start in 2 minutes. Portal is opened in depot", MESSAGE_STATUS_WARNING)

	portalwhere = {x= 32349, y=32222, z=7}
	local portal = doCreateItem(11796,1,portalwhere)
	doSetItemActionId(portal, 25001)
	doSendMagicEffect(portalwhere, CONST_ME_TELEPORT)


	iteminfo = {x= 32348, y=32222, z=7}
	local item = doCreateItem(1431,1,iteminfo)
	doSetItemActionId(item, 25002)
	doSendMagicEffect(iteminfo, CONST_ME_TELEPORT)
	 
	addEvent(function() doRemoveItem(getTileItemById(portalwhere, 11796).uid) end, 120 * 1000)
	addEvent(function() doSendMagicEffect(portalwhere, CONST_ME_TELEPORT) end, 120 * 1000)

	addEvent(function() doRemoveItem(getTileItemById(iteminfo, 1431).uid) end, 120 * 1000)
	addEvent(function() doSendMagicEffect(iteminfo, CONST_ME_TELEPORT) end, 120 * 1000)

	addEvent(lmsclosed, 2*60*1000)
	addEvent(lmsclosed1, 1*60*1000)
	addEvent(lmscheck, 130*1000)

	return true
end



function onThink(interval)

	broadcastMessage("Last Man Standing event will start in 3 minutes.", MESSAGE_STATUS_WARNING)
	addEvent(lms, 60*1000)

	return true
end

I must not fear. Fear is the mind killer.

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por Doria Louro
      Olá nobre senhores, tudo bem com vocês?
      Servidor: TFS 0.3.6
      Cliente:    8.60
       
      Estou com a seguinte ideia, criar conjuntos de equipamentos em meu servidor, que aumente os atributos do player ao utilizar o conjunto/set completo, exemplo:

       
      Um exemplo dos itens contidos no meu itens.xml:
      <item id="2487" article="a" name="warrior armor"> <attribute key="weight" value="9000" /> <attribute key="armor" value="13" /> <attribute key="skillSword" value="1" /> <attribute key="skillAxe" value="1" /> <attribute key="skillClub" value="1" /> <attribute key="slotType" value="body" /> <attribute key="healthGain" value="2" /> <attribute key="healthTicks" value="3000" /> <attribute key="description" value="+2 HP every 3s, Sale value: $5000" /> </item>  
      Em meu movements.xml:
      <movevent type="Equip" itemid="2487" level="30" slot="armor" event="function" value="onEquipItem"> <vocation id="8" /> </movevent> <movevent type="DeEquip" itemid="2487" slot="armor" event="function" value="onDeEquipItem" />  
      Entretanto eu fico limitado aos eventos de Equip default, se eu altero para meu script full_set.lua:
      <movevent type="Equip" itemid="2487" level="30" slot="armor" event="script" value="full_set.lua"> <vocation id="8" /> </movevent>  
      Executando meu script  eu perco os atributos contidos no itens.xml, tais como o aumento de skill, ganho de HP por segundo e também qualquer vocação pode utilizar o equipamento.
       
      Simplificando, é possível utilizar os recursos padrões de Equip do movements e adicionar um/mais scripts personalizáveis sem perder as funcionalidades da function onEquipItem?
      Meu objetivo é quanto mais partes do set o jogador possuir, mais bônus ele obterá, um exemplo:
       
      Warrior Set
      [2 peças] - Aumenta em 100 HP total
      [4 peças] - Aumenta em 2 shielding
       
      Eu tenho uma ideia de colocar essa verificação no creaturescripts, entretanto não gostaria de tomar esse rumo pois acredito que poderia sobrecarregar meu servidor com as verificações por thing.
      Efetuei consultas pela internet e geralmente o pessoa que tem essa duvida utiliza itens que não tem status, tipo um ring, no meu caso é diferente.
       
      Possível solução: Seria utilizar o código Equip padrão no meu script e depois aplicar meu código, entretanto eu não encontrei em nenhum local esse script de Equip,
       
      Quem puder me ajudar eu ficaria eternamente grato já que esse é um sistema chave no meu projeto, agradeço desde já
    • Por Imperius
      Tinha visto isso no servidor do MegaTibia / Kaldrox e achei bem interessante.
       
      Todos os tópicos que encontrei sobre o assunto de alterar a cor das mensagens dos GMs, CMs e ADM no channel Help para vermelho, falavam que tinham que fazer uma configuração na própria source do servidor.
       
      Fiz uma gambiarra que funciona, sem a necessidade de mexer na source do servidor e de utilizar comandos para isso. Testei somente em TFS 0.4 e funciona tranquilamente.
       
      segue abaixo como configurar em seu otserver:
       
      data > talkactions > scripts > crie um arquivo chamado gmsayred.lua e cole o código abaixo:
       
      function onSay(cid, words, param, channel) if channel == CHANNEL_HELP then for _, pid in ipairs(getPlayersOnline()) do doPlayerSendChannelMessage(pid, '', "".. getCreatureName(cid) .. ": ".. words, TALKTYPE_CHANNEL_R1, CHANNEL_HELP) end return true end end  
      em talkactions.xml cole a tag abaixo:

       
      <!-- Gamemasters --> <talkaction default="yes" filter="quotation" logged="no" access="3" event="script" value="gmsayred.lua"/>    
      e pronto! Agora é só enviar alguma mensagem no Help que a mensagem ficará em vermelho.
       

       
    • Por Xagah
      Olá, bom dia a todos.
       
      Como tenho visto muitíssimos pedidos neste sentido, lhes apresento o LMS - Last Man Standing com BroadCast




       
    • Por Leohige
      Evento Loteria 
       
       
      Esse evento loteria é diferente dos demais que existem hoje nos servidores, é baseado em cima de um evento que ocorre no CraftLandia (um servidor de Minecraft).
      Quando o evento for iniciado o jogador poderá pagar um valor (configurável) para tentar acertar o número premiado (que vai de 1 até o número configurado). O evento tem um tempo de duração (configurável) e o primeiro jogador a acertar qual é o número premiado levará um premio em dinheiro (configurável) e o evento será encerrado.
       
      Demonstrações:
       
       
       
       
      Comandos:
       
       
      Configuração:
       
       
      Caso queira implementar este evento em seu servidor, crie os arquivos abaixo.
       
      data/lib/lottery/event.lua (as configurações ficam neste arquivo)
       
       
      data/globalevents/scripts/lottery.lua
       
       
      data/globalevents/globalevents.xml
       
      você pode por com um intervalo de tempo
       
       
      ou horário fixo
       
       
      data/talkactions/scripts/lottery.lua
       
       
      data/talkactions/talkactions.xml
       
       
      Tradução para PT-BR!
       
      Caso deseje traduzir o evento, substitua o Lottery.messages inteiro em data/lib/lottery/event.lua por este
       
       
      Qualquer problema, sugestão, bug ou dúvida utilize este tópico!!!
    • Por Killua
      Últimas atualizações:
       
      16/12/2013:
       
       


       
       
      Introdução:
       
       
      Este é o meu já conhecido evento Blood Castle Automático que estava em outro fórum que acabou. Estou trazendo ele aqui para que ele não "morra".
       
       
       
       
      Informações:  
       
      #Dica: Acho que fica legal o premio do evento ser um item que da double exp por um tempo.
       
       
      Atualização [12/04/2014]
       
       
      Resolvi refazer o código, para facilitar a instalação e melhorar o funcionamento do evento.
       
       
      O que mudou?
       
       
       
       
       
      Instalando o evento:
       
      Lib:
       


       
       
      Movements: 
       


       
       
       
      Creaturescripts: 
       


       
      Monsters: 
       

          O evento pode acontecer de duas maneiras: automática ou manualmente. Vou por as duas possibilidades:     Automática:   

       
       
      Manual:
       


       
       
      Como Configurar:
       
       
      * Se você for colocar, dentro do evento, um teleporte para as pessoas que não quiserem mais participar, coloque o Action ID 9371 nele.
       
       
      * Lembre-se de por NO-LOGOUT tool e NO-PVP tool em toda área do evento!!
       
       
      Todas as demais explicações estão na lib, mas vou demonstrar como configurar os mais "confusos".
       
       
      No modo automático, você configura de quanto em quanto o tempo o evento vai acontecer. Nessa tag:
      <globalevent name="Blood Castle" interval="3600" event="script" value="BloodGlobalEvent.lua"/> Aqui está 3600 segundos, ou seja, 1 hora.
      * Se seu servidor for em milisegundos, multiplique o número por 1000, assim: 3600 segundos * 1000 = 3600000 milisegundos = 1 hora.
       
      No modo manual, para iniciar o evento, basta usar a talkaction /blood-start com seu god.
       
       
      Em posGuarda, vc deve colocar a posicao do Guarda do Portao, como mostrado abaixo:  
        As posPedras são onde ficam as pedras que tampam a passagem enquanto o evento não esta aberto, conforme na imagem abaixo:  
        Em estátua, vc deve colocar a posição em que o arcanjo vai ser criado, conforme na imagem abaixo:  

        Nas posParedes, vc deve por a posição das paredes que bloqueiam a entrada do castelo e que são removidas quando o guarda morre, conforme abaixo:  
        Em fromPos e toPos, você vai por o canto superior esquerdo e o canto inferior direito do mapa do seu evento, respectivamente. Dessa maneira:  
        As outras configurações eu acredito que já estejam bem explicadas.     Espero que gostem dessa nova versão. Recomendo a todos que já usam o evento, reinstalar com essa nova versão.   Qualquer dúvida ou bug, postem que irei responder.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo